(57)【要約】【課題】  画像形成装置等の機器から収集したログデータを、できるだけ管理者等の手間をかけずに様々な形式に変換して出力することができるログ管理プログラム等を提供する。【解決手段】  ログ管理プログラム１１ａは、変換情報が記述されたスクリプト１１ｂに基づいて、ローカル機器ログ１１ｄやネットワーク機器ログ１１ｅやネットワーク機器メンテナンスログ１１ｆやネットワーク機器一覧ファイル１１ｇを読み込み、データベースへの登録用ファイル１１ｃを出力する。このため、スクリプト１１ｂを登録先のデータベースに合わせて用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル１１ｃが得られる。【選択図】図２
2006106882.tif 000002
【特許請求の範囲】
【請求項１】
機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがった前記登録用ファイルを出力する変換手順、
を備えることを特徴とするログ管理プログラム。
【請求項２】
請求項１に記載のログ管理プログラムにおいて、
前記機器は複数からなり、
前記ログファイル記憶手段が記憶する前記ログファイルは、前記各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからなり、
前記スクリプト記憶手段が記憶する前記スクリプトは、前記フォーマットの種別に対応して変換情報が記述されており、
前記変換手順は、前記ログファイルを前記ログファイル記憶手段から取得し、各々のログデータのフォーマットに対応する前記スクリプトの前記変換情報に基づいて前記変換を行い、前記登録用ファイルを出力する手順であること、
を特徴とするログ管理プログラム。
【請求項３】
請求項２に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器のログデータの記憶方法または提供方法の少なくとも一方の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項４】
請求項２または請求項３に記載のログ管理プログラムにおいて、
前記各機器の提供情報の種類というのは、前記各機器の機種の違いによるものであること、
を特徴とするログ管理プログラム。
【請求項５】
請求項２〜請求項４の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには、前記各ログデータに対応して変換出力されるテーブル項目に関する情報が記述されており、
前記変換手順は、前記変換の際、前記登録用ファイルに記述される前記テーブル項目の情報が単一のテーブルに登録可能な記述となるファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項６】
請求項２〜請求項４の何れかに記載のログ管理プログラムにおいて、
前記スクリプト記憶手段が記憶する前記スクリプトには前記各ログデータのうちの少なくとも１つから複数のテーブルに登録するための情報が記述されており、
前記変換手順は、前記変換の際、前記各ログデータのうちの少なくとも１つから変換して出力される前記登録用ファイルが複数のテーブルに登録可能なファイルになるように変換して出力する手順であること、
を特徴とするログ管理プログラム。
【請求項７】
請求項１〜請求項６の何れかに記載のログ管理プログラムにおいて、
前記機器は画像形成装置であること、
を特徴とするログ管理プログラム。
【請求項８】
請求項１〜請求項７の何れかに記載のログ管理プログラムにおいて、
さらに、前記機器からログデータまたはログデータを有するログファイルを取得して前記ログファイル記憶手段に記憶させるログデータ取得手順、
を備えることを特徴とするログ管理プログラム。
【請求項９】
請求項１〜請求項８の何れかに記載のログ管理プログラムにおいて、
さらに、表示手段に表示されたＧＵＩ（グラフィカルユーザーインターフェース）によって入力された情報に基づいて前記スクリプトを生成して前記スクリプト記憶手段に記憶させるスクリプト生成手順、
を備えることを特徴とするログ管理プログラム。
【請求項１０】
プログラムを実行可能なサーバであって、
請求項１〜請求項９の何れかに記載のログ管理プログラムを実行することを特徴とするログ管理サーバ。
【請求項１１】
ログデータを出力する機器と、
プログラムを実行可能なサーバであって、前記機器が出力した前記ログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項１〜請求項９の何れかに記載のログ管理プログラムを実行するログ管理サーバと、
を備えることを特徴とするログ管理システム。
【請求項１２】
機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複写機や複合機等の機器から収集したログデータに対して所定の処理を施すログ管理プログラム等に関する。
【背景技術】
【０００２】
従来、複写機等の端末装置に故障等の異常が生じた場合、それらの端末装置を遠隔管理する管理装置には故障の回数のみが表示されるようになっていた。このため、サービスマンが故障部位の認識やその状態の認識を行うことができず、部品交換の要否等の判断を正確に行うことができなかった。そこでこのような問題を解決するために、特許文献１に記載の技術が提案された。この技術では、複写機に接続された通信ユニットがその複写機に関する様々な情報（コピー枚数、感光電圧、バイアス電圧、ヒートローラ温度、トラブルの発生有無、トラブルのコード、部品交換情報等）を、異常発生時等の所定のタイミングでセンタ装置に送信する。そして、センタ装置はその情報を受信すると所定のフォーマットに変換してファイルとして記憶し、表示要求に応じてそのファイルのデータを加工して表示部に表示させる。このため、サービスマンは表示部に表示された情報から異常の発生状況や履歴等を知ることができ、部品交換の要否等の判断を正確に行うことができる。
【特許文献１】特開平３−１６１７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで近年、ネットワークの普及により、遠隔地から任意のタイミングで端末装置から情報（ログデータ）を取得できるようになった。このため、異常の兆候をつかみトラブルを未然に防いだり、運用状況を管理する等の目的のため、端末装置から取得したログデータをデータベースに登録させ、分析ツールを用いてその登録させたログデータを様々な角度から分析したいという要望が高まってきた。このような要望に応えるためには画像形成装置等の端末装置から送られてくるログデータをＳＱＬファイルのような形式に変換して出力できるようになっているとデータベースへの登録には都合がよい。
【０００４】
しかし、データベース管理システム（ＤＢＭＳ）が扱うＳＱＬファイルにはベンダー毎に仕様上の若干の差違がある上、分析ツールが利用するテーブル名や項目名等も分析ツールによって異なる場合が多い。このため、それらに合わせてログデータを変換してＳＱＬファイルを出力する必要があり、データベースの数だけＳＱＬファイルを用意する必要がある。したがって一般的にはＳＱＬファイルを生成するプログラムをデータベースの数だけ個別に用意する必要がある。しかし、このことはプログラムの作成に手間を要することを意味し、テーブル名の変更等に対しても柔軟に対応することが難しいことを意味する。
【０００５】
そして、このような問題は、プリンタ、スキャナ、ファクシミリ、カメラ、またはこれらの機能を併せ持った複合機、画像形成装置等の端末装置から送られてくるログデータをデータベースに登録させるような場合に限らず、様々な機器（例えば、自動販売機、空調装置、カメラ、ＡＶ機器、ストレージ機器、またはこれらの機能を併せ持った複合機等）から送られてくるログデータをデータベースに登録させる場合の全てに言えることである。
【０００６】
本発明は上述した問題に鑑みなされたものであり、画像形成装置等の機器から収集したログデータを、できるだけ管理者等の手間をかけずに様々な形式に変換して出力することができるログ管理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するためになされた請求項１に記載のログ管理プログラムは、機器から出力されたログデータをデータベースへ登録するための登録用ファイルに変換する処理を、コンピュータに実行させるためのプログラムであって、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段からログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得したスクリプトに基づいてログファイルのログデータを変換して標準化言語の仕様にしたがった登録用ファイルを出力する変換手順を備えることを特徴とする。なお、ここで言う「変換情報」というのは、例えば、ログデータのうちのどのデータをどのような形式で登録用ファイルに出力するかという情報である。また、ここで言う「標準化言語」というのは、データベースに対する操作を行うために広く用いられる言語、例えばＳＱＬを意味する。
【０００８】
このようなログ管理プログラムによれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。つまり、登録用ファイルが生成されるプログラムに比較して簡易に作成できるスクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルが生成されるプログラムを個別に用意する場合と比較して、本発明のログ管理プログラムを利用する場合の方が管理者等の手間を軽減することができる。
【０００９】
また、スクリプトファイルに対応テーブル名や対応項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【００１０】
ところで、ログファイル記憶手段が記憶するログファイルは、単一のフォーマットからなるログファイルのみを扱うようになっていてもよいが、ログデータを出力する機器が複数ある場合は、各機器の提供情報の種類に対応した異なるフォーマットからなる複数のログデータからログファイルが構成されている場合も考えられる。そのため、フォーマットの種別に対応させて変換情報をスクリプトに記述しておき、ログ管理プログラムの変換手順においては、各々のログデータのフォーマットに対応するスクリプトの変換情報に基づいて前述した変換を行い、登録用ファイルを出力するようになっているとよい（請求項２）。なお、ログファイル記憶手段が記憶するログファイルは、異なるフォーマットからなる複数のログデータが単一のファイルによって構成されていてもよいし、フォーマット毎に個別のファイルに分けられて構成されていてもよい。
【００１１】
このようになっていれば、ログファイル記憶手段が記憶するログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【００１２】
なお、上述した「各機器の提供情報の種類」というのは、例えば、各機器のログデータの記憶方法や提供方法の違いによるものが考えられる（請求項３）。具体的には、機器がネットワークに直接接続されておりログデータがネットワーク上に直接送出されるようになっている場合や、機器がパーソナルコンピュータに接続されておりログデータがパーソナルコンピュータによって収集されてネットワーク上に送出されるようになっている場合のように、機器からのログデータの提供方法が異なることにより、ログデータのフォーマットに違い生ずる場合がある。また、機器自身の記憶装置に記憶されたログデータと、機器から必要な情報を集めて管理プログラムが生成するログデータとでも、フォーマットに違いが生ずる場合がある。
【００１３】
また、上述した「各機器の提供方法の種類」というのは、例えば、各機器の機種の違いによるものであることも考えられる（請求項４）。具体的には、機器のグレードの差異による違いや、機器自体の目的の違いや、発売時期の違い等により、提供できる情報の量や質が異なり、フォーマットの違いにつながっている。
【００１４】
これらのような「各機器の提供方法の種類」に対応した複数のフォーマットのログデータがログファイルにおいて許容されるようになっていれば、よりログ管理プログラムの適用範囲が広がる。
【００１５】
次に登録用ファイルについて言及する。一般的に、プログラムの管理上の問題から、ログデータの種類毎に登録用ファイルが生成されることが多いが、登録先のテーブルが一つである場合には、登録用ファイルに記述されるテーブルもその一つだけである方が都合がよい。したがって、各ログデータに対応するテーブル項目やテーブル構造に関する情報をスクリプトに予め記述しておき（例えば、ログデータＡの要素ａ１はテーブルＣの項目ｃ１に対応し、ログデータＢの要素ｂ１はａ１と同じ情報を示すものであればテーブルＣの項目ｃ１に、違うものであればテーブルＣの項目ｃ２に対応するというように）、ログ管理プログラムの変換手順における変換の際には、登録用ファイルが単一のテーブルに登録可能なファイルになるように変換して出力するようになっていてもよい（請求項５）。
【００１６】
このようになっていれば、フォーマットの異なる複数のログデータを１つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。
【００１７】
また、複数のテーブルに登録するための情報（例えば、ログデータＡの要素ａ１はテーブルＢの項目ｂ１に対応し、同じログデータＡの要素ａ１はテーブルＣの項目ｃ１にも対応するというような情報）をスクリプトに予め記述しておき、ログ管理プログラムの変換手順における変換の際には、同じログデータの情報が複数のテーブルに登録可能となるように変換して出力するようになっていてもよい（請求項６）。
【００１８】
このようになっていれば、複数のテーブルで必要とされる同じログデータをそれぞれに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。
【００１９】
ところで、上述した「機器」というのは、どのようなものであってもよいが、特に画像形成装置であるとよい（請求項７）。
一般的に画像形成装置は、感光ローラ、紙送り機構等の可動部が多い上、トナーカードリッジをトナーの残量に応じて交換する必要があり、他の機器に比較してメンテナンスに手間を要する。このためログデータを解析して故障の発生の予測を行いたい、トナーカードリッジの交換時期を予測したい等の要望が他の機器に比較して多い。したがって、画像形成装置においては、上述したようなログ管理プログラムの利用価値が特に高い。
【００２０】
なお、ログ管理プログラムは、さらに、機器からログデータまたはログデータを有するログファイルを取得してログファイル記憶手段に記憶させるログデータ取得手順を備えていてもよい（請求項８）。
【００２１】
このようになっていれば、別途、機器からログデータを収集してログファイル記憶手段に記憶させる仕組みを用意する必要がなくなる。
また、ログ管理プログラムは、さらに、表示手段に表示されたＧＵＩ（グラフィカルユーザーインターフェース）によって入力された情報に基づいてスクリプトを生成してスクリプト記憶手段に記憶させるスクリプト生成手順を備えていてもよい（請求項９）。
【００２２】
このようになっていれば、スクリプトを容易に生成することができるため、管理者の手間が軽減され、ログ管理プログラムの利用性が高まる。
ところで、プログラムを実行可能なサーバに上述したログ管理プログラムを実行させてログ管理サーバを構成してもよい（請求項１０）。
【００２３】
このようにログ管理サーバを構成すれば、このサーバを利用することにより上述した効果を得ることができる。
また、ログデータを出力する機器と、プログラムを実行可能なサーバであって、機器が出力したログデータをログファイルとして記憶するログファイル記憶手段および変換情報が記述されたスクリプトを記憶するスクリプト記憶手段を有し、請求項１〜請求項９の何れかに記載のログ管理プログラムを実行するログ管理サーバと、によってログ管理システムを構成してもよい（請求項１１）。
【００２４】
このようにログ管理システムを構成すれば、このシステムを利用することにより上述した効果を得ることができる。
また、機器から出力されたログデータをログファイルとして記憶するログファイル記憶手段から前記ログファイルを取得し、変換情報が記述されたスクリプトを記憶するスクリプト記憶手段から取得した前記スクリプトに基づいて前記ログファイルのログデータを変換して標準化言語の仕様にしたがったデータベース登録用ファイルを出力することを特徴とするログ変換方法（請求項１２）によっても、上述した課題を解決することができる。
【００２５】
そして、このようなログ変換方法によれば、登録するデータベースの形式に合わせて適切なスクリプトを用意することにより、様々なデータベースに登録可能な登録用ファイルを得ることができる。したがって、スクリプトを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイルが得られ、管理者等の手間を軽減することができる。また、スクリプトファイルにテーブル名や項目名を記述するように構成すれば、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプトファイルを修正するだけで対応することができ、管理者等の手間を軽減することができる。
【００２６】
なお、上述した請求項２〜請求項９の何れかに記載のログ管理プログラムが有する変換手順によって実現される方法を実行することによっても上述した各ログ管理プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明が適用された実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００２８】
１．構成の説明
図１は、実施形態のログ管理システムの概略構成を示す構成図である。ログ管理システムは、主に、ＬＡＮ２５に接続されたサーバＰＣ１１と、ＬＡＮ２５に接続されたクライアントＰＣ１３と、そのクライアントＰＣ１３にパラレルケーブルによって接続されたプリンタ１５と、ＬＡＮ２５に接続されたプリンタ２１と、ＬＡＮ２５に接続された複合機２３と、ＬＡＮ２５に接続されたクライアントＰＣ１９と、そのクライアントＰＣ１９とＵＳＢケーブルによって接続された複合機１７とから構成される。
【００２９】
サーバＰＣ１１は、ログ管理プログラム１１ａを記憶しており、そのログ管理プログラム１１ａを実行可能なパーソナルコンピュータである。ここでサーバＰＣ１１の構成について、図２のブロック図を用いて詳細に説明する。サーバＰＣ１１は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるＲＡＭ１１１と、基本的なプログラム等が記憶されたＲＯＭ１１２と、プログラムを実行するＣＰＵ１１３と、液晶ディスプレイ等からなり画像を表示可能な表示部１１４と、パラレルケーブルやＵＳＢケーブルを介して外部の機器と通信可能なローカルＩ／Ｆ１１５と、イーサネット（登録商標）等のネットワークを介して外部の機器と通信可能なネットワークＩ／Ｆ１１６と、アプリケーションプログラムやログファイル等を記憶するＨＤＤ１１７と、キーボードやマウス等からなる入力部１１８と、これらを結ぶバス１１９とから構成される。なお、表示部１１４や入力部１１８は、ネットワークＩ／Ｆ１１６を介して接続された外部の別の端末装置によってまかなわれていてもよい。また、ＨＤＤ１１７が記憶する具体的なものとしては、ログ管理プログラム１１ａと、ログ管理プログラム１１ａが実行時に読み込むスクリプト１１ｂと、後述する各ログファイルをもとにログ管理プログラム１１ａによって出力される登録用ファイル１１ｃと、ログ管理プログラム１１ａによって収集されて出力されるローカル機器ログ１１ｄ（ローカル接続されたプリンタおよび複合機のログファイルを接続ＰＣから収集して構成するログファイル）と、ログ管理プログラム１１ａによって収集されて出力されるネットワーク機器ログ１１ｅ（ネットワークに直接接続されたプリンタおよび複合機が蓄積しているログファイルを収集して構成するログファイル）と、ログ管理プログラム１１ａによって収集されて出力されるネットワーク機器メンテナンスログ１１ｆ（ネットワークに直接接続されたプリンタおよび複合機からメンテナンス用の情報を直接取得して構成するログファイル）と、ログ管理プログラム１１ａによって収集されて出力されるネットワーク機器一覧ファイル（ネットワークに直接接続されたプリンタおよび複合機に関する一覧情報によって構成されるファイル）とが存在する。なお、スクリプト１１ｂおよび登録用ファイル１１ｃはテキスト形式のファイルであり、ローカル機器ログ１１ｄ，ネットワーク機器ログ１１ｅ，ネットワーク機器メンテナンスログ１１ｆ，ネットワーク機器一覧ファイル１１ｇはいずれもｃｓｖ形式のファイルである。また、登録用ファイル１１ｃはＳＱＬの記述規則に従って記述されている。
【００３０】
説明を図１に戻し、クライアントＰＣ１３は、監視プログラム１３ａを記憶しており、その監視プログラム１３ａを実行可能なパーソナルコンピュータである。ここでクライアントＰＣ１３の構成について、図３のブロック図を用いて詳細に説明する。クライアントＰＣ１３は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるＲＡＭ１３１と、基本的なプログラム等が記憶されたＲＯＭ１３２と、プログラムを実行するＣＰＵ１３３と、液晶ディスプレイ等からなり画像を表示可能な表示部１３４と、パラレルケーブルやＵＳＢケーブルを介して外部の機器と通信可能なローカルＩ／Ｆ１３５と、イーサネット（登録商標）等のネットワークを介して外部の機器と通信可能なネットワークＩ／Ｆ１３６と、アプリケーションプログラムやログファイル等を記憶するＨＤＤ１３７と、キーボードやマウス等からなる入力部１３８と、これら各部を結ぶバス１３９とから構成される。なお、ＨＤＤ１３７が記憶する具体的なものとしては、ローカル接続されたプリンタや複合機を監視する監視プログラム１３ａと、監視プログラム１３ａによりプリンタや複合機から収集した情報（ログデータ）をファイル化したログファイル１３ｂとが存在する。
【００３１】
説明を図１に戻し、プリンタ１５は、クライアントＰＣ１３とパラレルケーブルによって接続され、主にクライアントＰＣ１３からの指令に基づいて機能するプリンタである。プリンタ１５の構成について図４のブロック図を用いて詳細に説明する。プリンタ１５は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるＲＡＭ１５１と、各種のプログラムが記憶されたＲＯＭ１５２と、プログラムを実行するＣＰＵ１５３と、液晶ディスプレイ等からなり画像を表示可能な表示部１５４と、印刷媒体に印刷を行う印刷部１５５と、パラレルケーブルやＵＳＢケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークＩ／Ｆ１５６と、自身の状態等を外部に知らせるための情報（ログデータ）であるＭＩＢ（Management Information Base）１５ｂを記憶する不揮発性ＲＡＭ１５７と、メモリカードのインターフェースを備えたスロットであるカードスロット１５８と、これら各部を結ぶバス１６０とから構成される。また、カードスロット１５８には、プリンタ１５に関する情報（ログデータ）が蓄積されて構成されたログファイル１５ａを記憶するメモリカード１５９がセットされている。
【００３２】
説明を図１に戻し、複合機１７は、クライアントＰＣ１９とＵＳＢケーブルによって接続され、クライアントＰＣ１９からの指令に基づいて機能することも可能な複合機１７である。複合機１７の構成について図５のブロック図を用いて詳細に説明する。複合機１７は、主に、プログラムがロードされて実行される際に一時記憶領域として用いられるＲＡＭ１７１と、各種のプログラムが記憶されたＲＯＭ１７２と、プログラムを実行するＣＰＵ１７３と、液晶ディスプレイ等からなり画像を表示可能な表示部１７４と、印刷媒体に印刷を行う印刷部１７５と、ＣＣＤ等からなり画像を読み取り可能なスキャナ部１７６と、パラレルケーブルやＵＳＢケーブルやイーサーネットケーブルを介して外部の機器と通信可能なネットワークＩ／Ｆ１７７と、ファクシミリ送受信時に通信機能を担う電話回線Ｉ／Ｆ１７８と、自身の状態等を外部に知らせるための情報（ログデータ）であるＭＩＢ１７ｂを記憶する不揮発性ＲＡＭ１７９と、メモリカードのインターフェースを備えたスロットであるカードスロット１８０と、これら各部を結ぶバス１８２とから構成される。また、カードスロット１８０には、複合機１７に関する情報（ログデータ）が蓄積されて構成されたログファイル１７ａを記憶するメモリカード１８１がセットされている。
【００３３】
説明を図１に戻し、プリンタ２１は、ＬＡＮ２５に接続され、ＬＡＮ２５上の機器から直接指令を受け取って機能するプリンタである。プリンタ２１の構成は、上述したプリンタ１５と基本的に同じであるため、説明を省略する。
【００３４】
複合機２３は、ＬＡＮ２５に接続され、ＬＡＮ２５上の機器から指令を受け取って機能する複合機である。複合機２３の構成は上述した複合機１７と基本的に同じであるため、説明を省略する。
【００３５】
２．動作の説明
次に、本実施形態のログ管理システムの特徴部分であるサーバＰＣ１１に記憶されたログ管理プログラム１１ａを中心にして、ログ管理システムの動作について説明する。まず、概要について説明する。
【００３６】
プリンタ１５，２１および複合機１７，２３は、自身の状態や印刷履歴等の情報（ログデータ）をログファイル（例えばログファイル１５ａ，１７ａ）として記憶しており、外部からの指令によってそのログファイルを出力することができるようになっている。また、外部からの要求によって、要求に応じたログデータを直接出力することもできるようになっている。
【００３７】
クライアントＰＣ１３に記憶されている監視プログラム１３ａは、定期的または実行が指示された際にプリンタ１５からログデータ（ＭＩＢ１５ｂ）やログファイル１５ａを取得し、これらをログファイル（ログファイル１３ｂ）としてクライアントＰＣ１３内に記憶する。また、監視プログラム１３ａは、サーバＰＣ１１に記憶されているログ管理プログラム１１ａからログファイル１３ｂを要求された際には、その要求されたログファイル１３ｂをサーバＰＣ１１に送信するようになっている。
【００３８】
クライアントＰＣ１９に記憶されている監視プログラム１９ａも上述した監視プログラム１３ａと同様に、定期的または実行が指示された際に複合機１７からログデータ（ＭＩＢ１７ｂ）やログファイル１７ａを取得し、これらをログファイルとしてクライアントＰＣ１９内に記憶する。また、監視プログラム１９ａは、サーバＰＣ１１に記憶されているログ管理プログラム１１ａからログファイルを要求された際には、その要求されたログファイルをサーバＰＣ１１に送信するようになっている。
【００３９】
次に、サーバＰＣ１１に記憶されているログ管理プログラム１１ａについて詳細に説明する。ログ管理プログラム１１ａは、ＣＰＵ１１３によってＨＤＤ１１７から読み出されて実行される。また、ログ管理プログラム１１ａは、主に３つの機能を有する。つまり、ログデータまたはログファイルを収集し、それらをログファイルとしてＨＤＤ１１７に記憶させる「ログ収集機能」、ＨＤＤ１１７に記憶されているログファイルをデータベース登録用ファイルに変換する「ログ変換機能」、この変換の際に用いるスクリプトを生成する「スクリプト生成機能」の３つである。
【００４０】
このうち「ログ収集機能」は、利用者がサーバＰＣ１１の入力部１１８を操作して指示を入力した際、利用者がネットワークＩ／Ｆ１１６を介して別の端末装置から指示を入力した際、または予め設定された日時になった際に実行される機能である。具体的には、クライアントＰＣ１３，１９からログファイル１３ｂ等や、プリンタ２１，複合機２３からログファイル１５ａ等やＭＩＢ１５ｂ等を収集し、ローカル機器ログ１１ｄ，ネットワーク機器ログ１１ｅ，ネットワーク機器メンテナンスログ１１ｆ，ネットワーク機器一覧ファイル１１ｇを生成してＨＤＤ１１７に記憶させる機能である。
【００４１】
ここで、ネットワーク機器メンテナンスログ１１ｆを取り上げ、具体的な形式について説明する。図１２に示すリストのように、ネットワーク機器メンテナンスログ１１ｆは、１行目にはログデータの名前「View Maintenance Information」が記述され、２行目にはデータ項目名がカンマ区切りで記述され、、３行目以降には２行目のデータ項目名の順にデータがカンマ区切りで記述されている。具体的な各項目の内容について説明する。１番目の「Name」はプリンタや複合機等の名称であり、例えば「PRN_355618」（３行目）や「PRN_224156」（４行目）というデータである。２番目の「Device_Type」は当該機器の種別であり、例えば「Br H-57N series」（３行目）や「Br H-65D_DN series」（４行目）というデータである。３番目の「IP_Address」は当該機器に割り当てられたＩＰアドレスである。３番目の「Location」は当該機器の設置場所であり、例えば「5F」（３行目）や「3F」（４行目）というデータである。４番目の「Contact」は連絡先の電話番号であり、例えば「123-2345」（３行目）や「123-5432」（４行目）というデータである。５番目の「Serial_Number」は機器のシリアル番号であり、例えば「A00000001」（３行目）や「B00000001」（４行目）というデータである。６番目の「MAC_Address」は、当該機器のネットワークインターフェースに設定されたＭＡＣアドレスである。７番目の「Date」は当該データの発生日付である。８番目の「Page_Count」は総出力ページ枚数である。９番目の「Drum_Unit_Remaining_Life」はドラムユニットの出力可能な残りページ枚数である。１０番目の「Black_Coverage」は用紙に対するトナーが定着している印刷面積の割合である。１１番目の「Black_Toner_Replace_Count」はブラックトナーの交換回数である。１２番目の「Drum_Unit_Replace_Count」はドラムユニットの交換回数である。１３番目の「Total_Pages_Printed_TRAY_1」は用紙トレー１の総出力枚数である。１４番目の「Total_Pages_Printed_MP_TRAY」は多目的トレー（任意のサイズの用紙がセットできるトレイ）が用いられて出力された総枚数である。１５番目の「Jam_Total」は紙詰まり回数である。１６番目の「PrintPageCount_A4_Letter」はＡ４あるいはレターサイズの出力枚数である。１７番目の「PrintPageCount_Legal」はリーガルサイズの出力枚数である。１８番目の「PrintPageCount_B5_Exe」はＢ５あるいはエグゼキューティブサイズの出力枚数である。１９番目の「PrintPageCount_Envelopes」は封筒サイズの出力枚数である。２２０番目の「PrintPageCount_Others」はその他のサイズの出力枚数である。
【００４２】
また、これらの各項目のデータは、３行目以降において、文字列型であればダブルクォーテーションで囲まれており、数値型であればそのまま記述されている。なお、これらのログデータの名前（１行目）、データ項目名（２行目）、データ（３行目〜）の組み合わせは、ネットワーク機器メンテナンスログ１１ｆ内に複数あってもよい。
【００４３】
次に「スクリプト生成機能」について説明する。「スクリプト生成機能」は、利用者がサーバＰＣ１１の入力部１１８を操作して指示を入力した際に実行される機能である。具体的には、サーバＰＣ１１の表示部１１４に図１３に示す入力画面４０１が表示され、利用者が入力部１１８を操作して入力画面４０１に必要な情報を入力することにより、スクリプト１１ｂが生成される。以下、入力画面４０１について説明し、続いてスクリプト１１ｂについて説明する。
【００４４】
入力画面４０１は、入力ファイルを指定するテキストボックス４０２（<InFile>タグに対応するテキストボックス）と、出力ファイルを指定するテキストボックス４０３（<OutFile>タグに対応するテキストボックス）と、フィールドテーブル（フィールド名の対応関係を有するテーブル）の内容を記述するテキストボックス４０４（<FieldTable>タグに対応するテキストボックス）と、複合型フィールド（データ行の中にフィールド名が含まれているもの）に関する情報を記述するテキストボックス４０５（<MultiField>タグに対応するテキストボックス）と、データベース名を記述するテキストボックス４０６（<DatabaseName>タグに対応するテキストボックス）と、データベースに関する記述を記すテキストボックス４０７（<DatabaseDescription>タグに対応するテキストボックス）と、テーブル名を記述するテキストボックス４０８（<TableName>タグに対応するテキストボックス）と、テーブルに関する記述を記すテキストボックス４０９（<TableDescription>タグに対応するテキストボックス）と、レコードの先頭記述を記すテキストボック４１０（<RecordsHeader>タグに対応するテキストボックス）と、レコードに記述するフィールド名とデータ型のリストを記述するテキストボックス４１１（<FieldName>タグに対応するテキストボックス）と、レコードの終端記述を記すテキストボックス４１２（<RecordsFooter>タグに対応するテキストボックス）と、スクリプト１１ｂを出力せずに入力画面４０１を閉じるためのコマンドボタン４１３と、スクリプト１１ｂを出力して入力画面４０１を閉じるためのコマンドボタン４１４とから構成される。
【００４５】
一方、スクリプト１１ｂは、例えば図１４および図１５（図１５は図１４）の続きである）に記されたリストのような記述内容である（各行「：」以前は行番号である）。図１４および図１５に示すように、リスト全体は<Template>タグと</Template>タグによって囲まれ、その間に各タグが記述され、各タグの直後にそれぞれのタグに関連する事項が記述されるといった形式になっている。なお、図１４および図１５に示すリストには、<Template>タグと</Template>タグによって記述された部分が１つしか記されていないが、同様の部分がスクリプト１１ｂ中に複数回記されていてもよい。
【００４６】
次に、「ログ変換機能」について説明する。「ログ変換機能」は、利用者がサーバＰＣ１１の入力部１１８を操作して指示を入力した際、または予め設定された日時になった際に実行される機能である。以下、ログ変換機能の具体的処理であるログ変換処理およびそのログ変換処理から呼び出されるＳＱＬ変換出力処理について説明する。
【００４７】
（１）ログ変換処理
まず、ログ変換処理について、図６のフローチャートを用いて説明する。ＣＰＵ１１３は、ログ変換処理の実行を開始すると、まず、ＨＤＤ１１７に記憶されているスクリプト１１ｂのファイルをオープンし、読み込み行を先頭に設定する（Ｓ１１０）。続いて、スクリプト１１ｂから、読み込み行として設定されている行を１行読み込み、次の読み込み行を１行進める（Ｓ１２０）。
【００４８】
続いて、Ｓ１２０で読み込んだ１行に<Template>タグが記述されているか否かによって処理を分岐する（Ｓ１３０）。<Template>タグが記述されている場合にはＳ１４０に進み、<Template>タグが記述されていない場合にはＳ１６０に進む。
【００４９】
Ｓ１４０では、ＳＱＬ変換出力処理（ＨＤＤ１１７に記憶されている各ログファイルを読み込み、スクリプト１１ｂに基づいて登録用ファイル１１ｃ（ＳＱＬファイル）を出力する処理）を実行する。このＳＱＬ変換出力処理の詳細については後述する。ＳＱＬ変換出力処理の実行を完了するとＳ１５０に進む。
【００５０】
Ｓ１５０では、ＳＱＬ変換出力処理が正常に終了したか否かによって処理を分岐する。具体的には、後述するエラーフラグを参照して判断する。ＳＱＬ変換出力処理が正常に終了した場合にはＳ１６０に進み、ＳＱＬ変換出力処理が正常に終了しなかった場合には、その旨を表示部１１４に表示させ、本処理（ログ変換処理）を終了する。
【００５１】
Ｓ１６０では、読み込み行として設定されている行がスクリプト１１ｂにおける最終行であるか否かによって処理を分岐する。読み込み行として設定されている行がスクリプト１１ｂにおける最終行である場合には本処理（ログ変換処理）を終了し、読み込み行として設定されている行がスクリプト１１ｂにおける最終行でない場合はＳ１２０に処理を戻す。
【００５２】
（２）ＳＱＬ変換出力処理
次に、ＳＱＬ変換出力処理について図７のフローチャートを用いて説明する。ＣＰＵ１１３は、ＳＱＬ変換出力処理の実行を開始すると、まず、上述したログ変換処理のＳ１２０で検出した<Template>タグからそれに対応するスクリプト１１ｂ内の</Template>タグの間（以下、「スクリプト１１ｂの対象範囲内」と言う。）に<InFile>タグが記述されているか否かによって処理を分岐する（Ｓ２０１）。<InFile>タグが記述されている場合にはＳ２０３に進み、<InFile>タグが記述されていない場合にはＳ２１８に進み、その進んだＳ２１８ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了し、呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００５３】
<InFile>タグが記述されている場合に進むＳ２０３では、<InFile>タグの次行をスクリプト１１ｂから読み込み、その読み込んだ行に記述されている名前のファイル（ローカル機器ログ１１ｄ，ネットワーク機器ログ１１ｅ，ネットワーク機器メンテナンスログ１１ｆ，ネットワーク機器一覧ファイル１１ｇの何れか）を入力ファイルとして開く。
【００５４】
続くＳ２０５では、スクリプト１１ｂの対象範囲内に<OutFile>タグが記述されているか否かによって処理を分岐する。<OutFile>タグが記述されている場合にはＳ２０７に進み、<OutFile>タグが記述されていない場合にはＳ２１８に進み、その進んだＳ２１８ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００５５】
<OutFile>タグが記述されている場合に進むＳ２０７では、<OutFile>タグの次行をスクリプト１１ｂから読み込み、その読み込んだ行に記述されている名前のファイルを出力ファイルとして用意する（登録用ファイル１１ｃに対応）。
【００５６】
続くＳ２０９では、スクリプト１１ｂの対象範囲内に<DatabaseName>タグが記述されているか否かによって処理を分岐する。<DatabaseName>タグが記述されている場合にはＳ２１１に進み、<DatabaseName>タグが記述されていない場合にはＳ２１３に進む。
【００５７】
<DatabaseName>タグが記述されている場合に進むＳ２１１では、<DatabaseName>タグの次行をスクリプト１１ｂから読み込み、その読み込んだ行に記述されている文字列をデータベース名として記憶し、Ｓ２１３に進む。
【００５８】
Ｓ２１３では、スクリプト１１ｂの対象範囲内に<DatabaseDescription>タグが記述されているか否かによって処理を分岐する。<DatabaseDescription>タグが記述されている場合にはＳ２１５に進み、<DatabaseDescription>タグが記述されていない場合にはＳ２１７に進む。
【００５９】
<DatabaseDescription>タグが記述されている場合に進むＳ２１５では、<DatabaseDescription>タグから次のタグまでの間をスクリプト１１ｂから行単位で順に読み込み、その中に含まれる「%s」を、記憶しておいたデータベース名に置換しながら、出力ファイルに書き出す。なお、上述したＳ２１１でデータベース名を記憶していない場合には行中に「%s」が含まれることはない。<DatabaseDescription>タグから次のタグまでの間の行を全て書き出すとＳ２１７に進む。
【００６０】
Ｓ２１７では、スクリプト１１ｂの対象範囲内に<TableName>タグが記述されているか否かによって処理を分岐する。<TableName>タグが記述されている場合にはＳ２１９に進み、<TableName>タグが記述されていない場合には結合子１に従い、Ｓ２２１（図８参照）に進む。
【００６１】
<TableName>タグが記述されている場合に進むＳ２１９では、<TableName>タグの次行をスクリプト１１ｂから読み込み、その読み込んだ行に記述されている文字列をテーブル名として記憶して結合子１に従い、Ｓ２２１（図８参照）に進む。
【００６２】
説明を図８のフローチャートに移し、結合子１に続くＳ２２１では、スクリプト１１ｂの対象範囲内に<TableDescription>タグが記述されているか否かによって処理を分岐する。<TableDescription>タグが記述されている場合にはＳ２２３に進み、<TableDescription>タグが記述されていない場合にはＳ２２５に進む。
【００６３】
<TableDescription>タグが記述されている場合に進むＳ２２３では、<TableDescription>タグから次のタグまでの間をスクリプト１１ｂから行単位で順に読み込み、その行中に含まれる「%s」を、記憶しておいたテーブル名に置換しながら、出力ファイルに書き出す。なお、上述したＳ２１９でテーブル名を記憶していない場合には行中に「%s」が含まれることはない。<TableDescription>タグから次のタグまでの間の行を全て書き出すとＳ２２５に進む。
【００６４】
Ｓ２２５では、スクリプト１１ｂの対象範囲内に<TableData>タグが記述されているか否かによって処理を分岐する。<TableData>タグが記述されている場合にはＳ２２７に進み、<TableData>タグが記述されていない場合にはＳ２３３に進む。
【００６５】
<TableData>タグが記述されていない場合に進むＳ２３３では、入力ファイルの読み出し開始位置を先頭にして記憶し、Ｓ２３５に進む。
一方、<TableData>タグが記述されている場合に進むＳ２２７では、<TableData>タグの次の行に記述されている文字列と入力ファイル中の各行とで一致するものがあるかどうか検索する。そして、一致するものがあるか否かによって処理を分岐する（Ｓ２２９）。一致するものがある場合にはＳ２３１に進み、一致するものがない場合にはＳ２３０に進み、その進んだＳ２３０ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００６６】
Ｓ２３１では、入力ファイル中の一致した行の位置を読み出し開始位置として記憶し、Ｓ２３５に進む。
Ｓ２３５では、スクリプト１１ｂの対象範囲内に<FieldTable>タグが記述されているか否かによって処理を分岐する。<FieldTable>タグが記述されている場合にはＳ２３７に進み、<FieldTable>タグが記述されていない場合には結合子２に従い、Ｓ２４３（図９参照）に進む。
【００６７】
<FieldTable>タグが記述されている場合に進むＳ２３７では、<FieldTable>タグの次の行をスクリプト１１ｂから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する（Ｓ２３９）。読み込んだ行にタグが記述されている場合は結合子２に従い、Ｓ２４３（図９参照）に進み、読み込んだ行にタグが記述されていない場合にはＳ２４１に進む。
【００６８】
Ｓ２４１では、読み込んだ行のうち、カンマの前までの文字列をＣＳＶ項目名、カンマの後ろからの文字列をフィールド名とし、これらをセットにして変換テーブルに記憶し、Ｓ２３７に処理を戻す。
【００６９】
説明を図９のフローチャートに移し、結合子２に続くＳ２４３では、スクリプト１１ｂの対象範囲内に<FieldName>タグが記述されているか否かによって処理を分岐する。<FieldName>タグが記述されている場合にはＳ２４５に進み、<FieldName>タグが記述されていない場合にはＳ２６６に進み、その進んだＳ２６６ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００７０】
<FieldName>タグが記述されている場合に進むＳ２４５では、<FieldName>タグの次の行をスクリプト１１ｂから読み込む。そして、読み込んだ行にタグが記述されているか否かによって処理を分岐する（Ｓ２４７）。読み込んだ行にタグが記述されている場合にはＳ２５５に進み、読み込んだ行にタグが記述されていなければＳ２４９に進む。
【００７１】
Ｓ２４９では、読み込んだ行のうち、カンマの直後の数値が「１」であるか否かによって処理を分岐する。カンマの直後の数値が「１」である場合はＳ２５１に進み、カンマの直後の数値が「１」でない場合はＳ２５３に進む。
【００７２】
カンマの直後の数値が「１」である場合に進むＳ２５１では、読み込んだ行のうち、カンマの前までの文字列を文字列型フィールドとし、その情報と文字列とをセットにしてフィールドテーブルに記憶し、Ｓ２４５に処理を戻す。
【００７３】
一方、  カンマの直後の数値が「１」でない場合に進むＳ２５３では、読み込んだ行のうち、カンマの前までの文字列を数値型フィールドとし、その情報と文字列とをセットにして（１レコードとして）フィールドテーブルに記憶し、Ｓ２４５に処理を戻す。
【００７４】
読み込んだ行にタグが記述されている場合に進むＳ２５５では、スクリプト１１ｂの対象範囲内に<RecordsHeader>タグが記述されているか否かによって処理を分岐する。<RecordsHeader>タグが記述されている場合にはＳ２５７に進み、<RecordsHeader>タグが記述されていない場合にはＳ２６６に進み、その進んだＳ２６６ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００７５】
<RecordsHeader>タグが記述されている場合に進むＳ２５７では、<RecordsHeader>タグから次のタグまでの間をスクリプト１１ｂから行単位で順に読み込み、レコード開始記述として記憶する。
【００７６】
続くＳ２５９では、スクリプト１１ｂの対象範囲内に<RecordsFooter>タグが記述されているか否かによって処理を分岐する。<RecordsFooter>タグが記述されている場合にはＳ２６１に進み、<RecordsFooter>タグが記述されていない場合にはＳ２６６に進み、その進んだＳ２６６ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００７７】
<RecordsFooter>タグが記述されている場合に進むＳ２６１では、<RecordsFooter>タグから次のタグまでの間をスクリプト１１ｂから行単位で順に読み込み、レコード終了記述として記憶する。
【００７８】
続くＳ２６３では、入力ファイルから項目名の行を読み出す。そして、変数であるカラム位置番号に０を代入し（Ｓ２６５）、結合子３に従い、Ｓ２６７（図１０参照）に進む。
【００７９】
説明を図１０のフローチャートに移し、結合子３に続くＳ２６７では、カラム位置番号を１増やす。そして、入力ファイルから入力した項目名の行から未処理のカンマまでの文字列を切り出す（Ｓ２６９）。
【００８０】
続くＳ２７１では、変換テーブルの項目名の中にＳ２６９で切り出した文字列があるか否かによって処理を分岐する。変換テーブルの項目名の中にＳ２６９で切り出した文字列がある場合にはＳ２７３に進み、変換テーブルの項目名の中にＳ２６９で切り出した文字列がない場合にはＳ２７５に進む。
【００８１】
変換テーブルのＣＳＶ項目名の中にＳ２６９で切り出した文字列がある場合に進むＳ２７３では、切り出した文字列を変換テーブルのフィールド名に置換して記憶し、Ｓ２７５に進む。
【００８２】
Ｓ２７５では、Ｓ２６９で切り出し文字列、または、Ｓ２７３で置換した文字列（フィールド名）がフィールドテーブルの中にあるか否かによって処理を分岐する（Ｓ２７５）。フィールドテーブルの中に該当文字列がある場合にはＳ２７７に進み、フィールドテーブルの中に該当文字列がない場合にはＳ２７９に進む。
【００８３】
フィールドテーブルの中に該当文字列がある場合に進むＳ２７７では、その文字列に対応づけてカラム位置番号をフィールドテーブルに登録（その文字列のレコードにカラム位置番号を追加）し、Ｓ２７９に進む。
【００８４】
Ｓ２７９では、Ｓ２６９で切り出した文字列の後が改行であるか否かによって処理を分岐する。Ｓ２６９で切り出した文字列の後が改行である場合にはＳ２８１に進み、Ｓ２６９で切り出した文字列の後が改行でない場合にはＳ２６７に処理を戻す。
【００８５】
Ｓ２６９で切り出した文字列の後が改行である場合に進むＳ２８１では、入力ファイルから次行を読み込む。そして、その読み込んだ行の中にカンマがあるか否かによって処理を分岐する（Ｓ２８３）。読み込んだ行の中にカンマがある場合にはＳ２８５に進み、読み込んだ行にカンマがない場合にはＳ２９２に進み、その進んだＳ２９２ではエラーフラグを立て、本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００８６】
Ｓ２８５では、Ｓ２８１で読み込んだ行をカンマによって切り分け、切り分けた文字列を順に配列に格納する（Ｓ２８７）。
続く、Ｓ２９１では、記憶しておいたレコード開始記述を出力ファイルに書き出し、結合子４に従い、Ｓ２９３に（図１１参照）に進む。
【００８７】
説明を図１１のフローチャートに移し、結合子４に続くＳ２９３では、フィールドテーブルの中からまだ読み出していないレコードを順に読み出す。なお、結合子４に続いて進んできた際には読み出し済みのレコードであるか否かの情報を初期化する。
【００８８】
続くＳ２９５では、Ｓ２９３で読み出したレコードにカラム位置が登録されているか否かによって処理を分岐する。Ｓ２９３で読み出したレコードにカラム位置が登録されている場合にはＳ２９７に進み、Ｓ２９３で読み出したレコードにカラム位置が登録されていない場合にはＳ３０７に進む。
【００８９】
Ｓ２９７では、Ｓ２９３で読み出したレコード内のフィールド名にイコール（＝）を付けて出力ファイルに書き出す。
続くＳ２９９では、Ｓ２９３で読み出したレコード内のカラム位置の番号をインデックスとして配列から文字列を取得する。
【００９０】
続くＳ３０１では、Ｓ２９３で読み出したレコード内の型情報に基づいてフィールドが文字列型であるか否かによって処理を分岐する。フィールドが文字列型である場合にはＳ３０３に進み、フィールドが文字列型でない場合にはＳ３０５に進む。
【００９１】
フィールドが文字列型である場合に進むＳ３０３では、Ｓ２９９で取得した文字列をシングルクォートで囲み、Ｓ３０５に進む。
Ｓ３０５では、文字列に改行コードを付けて出力ファイルに書き出し、Ｓ３０７に進む。
【００９２】
Ｓ３０７では、フィールドテーブルからまだ読み出していないレコードがあるか否かによって処理を分岐する。フィールドテーブルからまだ読み出していないレコードがある場合にはＳ２９３に処理を戻し、フィールドテーブルからまだ読み出していないレコードがない場合にはＳ３０９に進む。
【００９３】
Ｓ３０９では、記憶しておいたレコード終了記述を出力ファイルに書き出し、Ｓ３１１に進む。
Ｓ３１１では、入力ファイルに次行があるか否かによって処理を分岐する。入力ファイルに次行がある場合には結合子５に従ってＳ２８１（図１０参照）に処理を戻し、入力ファイルに次行がない場合には本処理（ＳＱＬ変換出力処理）を終了して呼び出しもとのログ変換処理（図６のＳ１４０参照）に戻る。
【００９４】
（３）実例
ここまでで、ログ変換処理およびそのログ変換処理から呼び出されるＳＱＬ変換出力処理について説明したが、ここで、図１４および図１５のスクリプト１１ｂが用いられて図１２のネットワーク機器メンテナンスログ１１ｆから図１６および図１７の登録用ファイル１１ｃが出力される様子を説明する。なお、登録用ファイル１１ｃの登録先であるデータベースは、図１８のデータベース構造図に示すように、データベースの名称は「WBA_DB」であり、そのデーターベースにはテーブルとして「WBA_NP_Maintenance」、「WBA_NetworkPrinterList」、「WBA_LocalPrinter」の３つが存在する。
【００９５】
ログ変換処理の実行が開始されると、まず、図１４および図１５のスクリプト１１ｂが開かれ、１行目が読み込まれる（図６のＳ１２０）。ここで、１行目が<Template>タグであるため、ＳＱＬ変換出力処理に移行する（図６のＳ１３０：Ｙ、Ｓ１４０）。
【００９６】
続いて、図１４のスクリプト１１ｂの２行目が<InFile>タグであるため、<InFile>タグの次行である３行目の「pintlog.csv」（ネットワーク機器メンテナンスログ１１ｆに相当）が開かれる（図７のＳ２０１：Ｙ、Ｓ２０３）。
【００９７】
続いて、図１４のスクリプト１１ｂの４行目が<OutFile>タグであるため、<OutFile>タグの次行である５行目の「sql\printlog.sql」（登録用ファイル１１ｃに相当）が開かれる（図７のＳ２０５：Ｙ、Ｓ２０７）。
【００９８】
続いて、図１４のスクリプト１１ｂの６行目が<DatabaseName>タグであるため、<DatabaseName>タグの次行である７行目の「WBA_DB」がデータベース名として記憶される（図７のＳ２０９：Ｙ、Ｓ２１１）。
【００９９】
続いて、図１４のスクリプト１１ｂの８行目が<DatabaseDescription>タグであるため、<DatabaseDescription>タグの次行である９行目から、次のタグの直前の行である１２行目までが、%sをデータベース名に置換されながら、図１６の登録用ファイル１１ｃ（１行目〜４行目）に出力される（図７のＳ２１３：Ｙ、Ｓ２１５）。
【０１００】
続いて、図１４のスクリプト１１ｂの１３行目が<TableName>タグであるため、<TableName>タグの次行である１４行目の「WBS_NTP_Maintenance」がテーブル名として記憶される（図７のＳ２１７：Ｙ、Ｓ２１９）。
【０１０１】
続いて、図１４のスクリプト１１ｂの１５行目が<TableDescription>タグであるため、<TableDescription>タグの次行である１６行目から、次のタグの直前の行である４１行目までが、%sをテーブ名に置換されながら、図１６の登録用ファイル１１ｃ（５行目〜３０行目）に出力される（図８のＳ２２１：Ｙ、Ｓ２２３）。
【０１０２】
続いて、図１４のスクリプト１１ｂの４２行目が<TableData>タグであるため、<TableData>タグの次行である４３行目の「View Maintenance Information」と同じ文字列の行がネットワーク機器メンテナンスログ１１ｆ内にあるか検索する（図８のＳ２２５：Ｙ、Ｓ２２７）。
【０１０３】
続いて、同文字列がネットワーク機器メンテナンスログ１１ｆ内にあるため（図１２の１行目）、その行がネットワーク機器メンテナンスログ１１ｆの読み出し開始位置として記憶される（図８のＳ２２９：Ｙ、Ｓ２３１）。
【０１０４】
続いて、図１４のスクリプト１１ｂの４４行目が<FieldTable>タグであるため、<FieldTable>タグの次行である４５行目から、次のタグの直前の行である４６行目までが、変換テーブルにセットされる（図８のＳ２３７〜Ｓ２４１）。具体的には、変換前「Printed Pages A4/LETTER」と変換後「PrintPageCount_A4_Letter」とが対として、変換前「Printed Pages OTHER」と変換後「PrintPageCount_Others」とが対として変換テーブルにセットされる。
【０１０５】
続いて、図１５のスクリプト１１ｂの４７行目が<FieldName>タグであるため、<FieldTalbe>タグの次行である４８行目から、次のタグの直前の行である６８行目までが、各行、カンマの前までの文字列が、カンマの後ろの数値に応じて文字列型または数値型の何れかとしてフィールドテーブルにセットされる（図９のＳ２４３：Ｙ〜Ｓ２５３）。具体的には、例えば、「Name」フィールドは文字列型フィールド、「Page_count」フィールドは数値型フィールドとしてフィールドテーブルにセットされる。
【０１０６】
続いて、図１５のスクリプト１１ｂの６９行目が<RecordsHeader>タグであるため、<RecordsHeader>タグの次行である７０行目と、次のタグの直前の行である７１行目とがレコード開始記述として記憶される（図９のＳ２５５：Ｙ、Ｓ２５７）。
【０１０７】
続いて、図１５のスクリプト１１ｂの７２行目が<RecordsFooter>であるため、<RecordsFooter>タグの次行であり、次のタグの直前の行でもある７３行目がレコード終了記述として記憶される（図９のＳ２５９：Ｙ、Ｓ２６１）。
【０１０８】
続いて、図１２のネットワーク機器メンテナンスログ１１ｆから項目名の行（２行目）が読み出される（図９のＳ２６３）。
続いて、読み出された行からカンマを区切り文字として順に文字列が取り出され（図１０のＳ２６９）、その取り出された文字列が変換テーブルにしたがって変換され（図１０のＳ２７１，Ｓ２７３）、さらに、フィールドテーブルにその文字列が存在する場合（図１０のＳ２７５：Ｙ）は、フィールドテーブルにカラム位置番号が登録される（図１０のＳ２７７）。
【０１０９】
続いて、図１２のネットワーク機器メンテナンスログ１１ｆからデータ行（３行目）が読み出され、読み出された行がさらにカンマを区切り文字として文字列毎に配列に格納される（図１０のＳ２８７）。
【０１１０】
続いて、図１６の登録用ファイル１１ｃ（３１行目〜３２行目）にレコード開始記述が出力される（図１０のＳ２９１）。
続いて、図１１のＳ２９３〜Ｓ３０５に従って、上述したフィールドテーブルと配列とから出力用の文字列行が生成されて、図１６の登録用ファイル１１ｃ（３２行目〜５２行目）に順に出力される。
【０１１１】
フィールドテーブルからすべてのレコードが出力されると、レコード終了記述が図１６の登録用ファイル１１ｃ（５２行目）に出力される（図１１のＳ３０９）。
続いて、図１２のネットワーク機器メンテナンスログ１１ｆの４行目が読み出され、上述した処理が繰り返され、各行が図１７の登録用ファイル１１ｃ（５３行目から７４行目）に出力される。
【０１１２】
続いて、図１３のネットワーク機器メンテナンスログ１１ｆの５行目が読み出され、上述した処理が繰り返され、各行が図１７の登録用ファイル１１ｃ（７５行目から９６行目）に出力される。
【０１１３】
図１３のネットワーク機器メンテナンスログ１１ｆのすべてのデータ行が処理されると、ＳＱＬ変換出力処理が終了し、ログ変換処理のＳ１５０：Ｙ、Ｓ１６０：Ｙと進みログ変換処理が終了する。
【０１１４】
３．効果
以上、実施形態のログ管理システムの構成および動作について説明したが、本実施形態のログ管理プログラム１１ａによれば、登録するデータベースの形式に合わせて適切なスクリプト１１ｂを用意することにより、様々なデータベースに登録可能な登録用ファイル１１ｃを得ることができる。つまり、登録用ファイルを生成するプログラムに比較して簡易に作成できるスクリプト１１ｂを用意するだけで、様々なデータベースに対して登録が可能な登録用ファイル（登録用ファイル１１ｃ）が得られる。したがって、特に対象のデータベースが増えれば増えるほど、登録用ファイルを生成するプログラムを個別に用意する場合と比較して、本実施形態のログ管理プログラム１１ａを利用する場合の方が管理者等の手間を軽減することができる。
【０１１５】
また、スクリプト１１ｂに対応テーブル名や対応項目名を記述することができるようになっているため、登録先のデータベースのテーブル名や項目名が変更された場合でもスクリプト１１ｂの一部を修正するだけで変更に対応することができ、管理者等の手間を軽減することができる。
【０１１６】
また、スクリプト１１ｂを適切に記述（具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<DatabaseName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述）すれば、ログファイルが、異なるフォーマットからなる複数のログデータから構成されていても、単一のデータベースに登録可能な登録用ファイルを出力させることができる。
【０１１７】
また、スクリプト１１ｂを適切に記述（具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を同一に記述し、そしてさらに、<FieldTable>タグと</FieldTable>タグとの間に複数のログデータ間でそれぞれ異なるフォーマットの変換前データ項目に対する変更後データ項目を記述）すれば、フォーマットの異なる複数のログデータを１つのテーブルへ登録することができる。このため、複数のテーブルに登録されたものを後からそれらをまとめるという作業が不要になり、管理者等の手間を軽減することができる。また、<DatabaseName>タグの次行を異なるように記載すれば、異なるデータベースに登録することができる。この点の一例について、図１９（ａ）の説明図を用いて説明する。ログ管理プログラム１１ａがネットワーク機器ログ１１ｅとローカル機器ログ１１ｄとを読み込んで登録用ファイル１１ｃを出力し、その登録用ファイル１１ｃをプリンタデータベースに登録させることにより、ネットワーク機器ログ１１ｅに含まれていたA4 PageCount(Network)という項目のデータと、ローカル機器ログ１１ｄに含まれていたA4 PageCount(Local)という項目のデータとがプリンタデータベースのプリンタメンテナンステーブル１つに登録される。
【０１１８】
また、スクリプト１１ｂを適切に記述（具体的には<Template>タグおよび</Template>タグを複数記述し、かつ、それぞれの<TableName>タグの次行を異なるように記述）すれば、複数のテーブルで必要とされる同じログデータをそれぞれのテーブルに登録することができるため、登録後に他のテーブルから参照させるような操作が不要となり、管理者等の手間を軽減することができる。この点の一例について、図１９（ｂ）の説明図を用いて説明する。ログ管理プログラム１１ａがネットワーク機器ログ１１ｅを読み込んで登録用ファイル１１ｃを出力し、その登録用ファイル１１ｃをプリンタデータベースと消耗品データベースに登録させることにより、ネットワーク機器ログ１１ｅに含まれていたA4 PageCount(Network)という項目のデータがプリンタデータベースのプリンタメンテナンステーブルと消耗品データベースの用紙消費量テーブルという２つのテーブルに登録される。
【０１１９】
最後に、実施形態のログ管理システムの各部と特許請求の範囲に記載の用語との対応を示す。サーバＰＣ１１のＨＤＤ１１７がログファイル記憶手段およびスクリプト記憶手段に相当し、登録用ファイル１１ｃの記述規則であるＳＱＬが「標準化言語」に相当する。
【図面の簡単な説明】
【０１２０】
【図１】ログ管理システムの概略構成を示す説明図である。
【図２】サーバＰＣの概略構成を示すブロック図である。
【図３】クライアントＰＣの概略構成を示すブロック図である。
【図４】プリンタの概略構成を示すブロック図である。
【図５】複合機の概略構成を示すブロック図である。
【図６】ログ変換処理を説明するためのフローチャートである。
【図７】ＳＱＬ変換出力処理を説明するためのフローチャートである（１／５）。
【図８】ＳＱＬ変換出力処理を説明するためのフローチャートである（２／５）。
【図９】ＳＱＬ変換出力処理を説明するためのフローチャートである（３／５）。
【図１０】ＳＱＬ変換出力処理を説明するためのフローチャートである（４／５）。
【図１１】ＳＱＬ変換出力処理を説明するためのフローチャートである（５／５）。
【図１２】ネットワーク機器メンテナンスログの具体例である。
【図１３】スクリプトを生成する際に必要な情報を入力するための入力画面の一例である。
【図１４】スクリプトの具体例である（１／２）。
【図１５】スクリプトの具体例である（２／２）。
【図１６】登録用ファイルの具体例である（１／２）。
【図１７】登録用ファイルの具体例である（２／２）。
【図１８】登録先のデータベースの構造を説明するための説明図である。
【図１９】効果を説明するための説明図である。
【符号の説明】
【０１２１】
１１…サーバＰＣ、１１ａ…ログ管理プログラム、１１ｂ…スクリプト、１１ｃ…登録用ファイル、１１ｄ…ローカル機器ログ、１１ｅ…ネットワーク機器ログ、１１ｆ…ネットワーク機器メンテナンスログ、１１ｇ…ネットワーク機器一覧ファイル、１３…クライアントＰＣ、１３ａ…監視プログラム、１３ｂ…ログファイル、１５…プリンタ、１５ａ…ログファイル、１５ｂ…ＭＩＢ、１７…複合機、１７ａ…ログファイル、１７ｂ…ＭＩＢ、１９…クライアントＰＣ、１９ａ…監視プログラム、２１…プリンタ、２３…複合機、２５…ＬＡＮ、１１１…ＲＡＭ、１１２…ＲＯＭ、１１３…ＣＰＵ、１１４…表示部、１１５…ローカルＩ／Ｆ、１１６…ネットワークＩ／Ｆ、１１７…ＨＤＤ、１１８…入力部、１１９…バス、１３１…ＲＡＭ、１３２…ＲＯＭ、１３３…ＣＰＵ、１３４…表示部、１３５…ローカルＩ／Ｆ、１３６…ネットワークＩ／Ｆ、１３７…ＨＤＤ、１３８…入力部、１３９…バス、１５１…ＲＡＭ、１５２…ＲＯＭ、１５３…ＣＰＵ、１５４…表示部、１５５…印刷部、１５６…ネットワークＩ／Ｆ、１５７…不揮発性ＲＡＭ、１５８…カードスロット、１５９…メモリカード、１６０…バス、１７１…ＲＡＭ、１７２…ＲＯＭ、１７３…ＣＰＵ、１７４…表示部、１７５…印刷部、１７６…スキャナ部、１７７…ネットワークＩ／Ｆ、１７８…電話回線Ｉ／Ｆ、１７９…不揮発性ＲＡＭ、１８０…カードスロット、１８１…メモリカード、１８２…バス。
【図２】
2006106882.tif 000003
【図３】
2006106882.tif 000004
【図４】
2006106882.tif 000005
【図５】
2006106882.tif 000006
【図６】
2006106882.tif 000007
【図７】
2006106882.tif 000008
【図８】
2006106882.tif 000009
【図９】
2006106882.tif 000010
【図１０】
2006106882.tif 000011
【図１１】
2006106882.tif 000012
【図１２】
2006106882.tif 000013
【図１３】
2006106882.tif 000014
【図１４】
2006106882.tif 000015
【図１５】
2006106882.tif 000016
【図１６】
2006106882.tif 000017
【図１７】
2006106882.tif 000018
【図１８】
2006106882.tif 000019
【図１９】
2006106882.tif 000020
【図１】
2006106882.tif 000021