(57)【要約】【課題】膨大な数のロギング関数がプログラム中に存在する場合であっても、これらのロギング関数を特定するための膨大な数のユニークな情報を別途管理することなく、ロギング採取処理を呼び出しているロギング関数を容易に特定することを目的とする。【解決手段】ロギング関数Ｌを特定するための特定情報に関する制御情報を登録する制御テーブル１１と、ロギング関数Ｌが実行される都度、このロギング関数Ｌに埋め込まれた特定情報を取得する取得部１４と、制御テーブル１１に登録された制御情報と取得部１４により取得した特定情報とに基づいて、この特定情報に対応するロギング情報が採取対象であるかを判断する判断部１５と、判断部１５により採取対象であると判断されたロギング情報を記憶部１３に記憶させる制御を行なう記憶制御部１７とをそなえ、特定情報は、プログラムＰにおけるロギング関数Ｌの位置情報をそなえて構成される。【選択図】図１
2010039796.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取装置であって、
該ロギング関数を特定するための特定情報に関する制御情報を登録する制御テーブルと、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、
該制御テーブルに登録された該制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、
該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部とをそなえ、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取装置。
【請求項２】
該位置情報は、該プログラムにおける該ロギング関数の行番号で構成されることを特徴とする、請求項１に記載のロギング情報採取装置。
【請求項３】
該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、請求項１に記載のロギング情報採取装置。
【請求項４】
該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおいて該ロギング関数が組み込まれている関数の関数名と、該関数における該ロギング関数の行番号とで構成されることを特徴とする、請求項１に記載のロギング情報採取装置。
【請求項５】
該判断部は、該取得部により取得した該特定情報が、該制御テーブルに登録された該制御情報に含まれる場合に、当該特定情報に対応する該ロギング情報が採取対象であると判断することを特徴とする、請求項１〜４のいずれか１項に記載のロギング情報採取装置。
【請求項６】
該制御テーブルの更新処理を実行する更新部をそなえることを特徴とする、請求項１〜５のいずれか１項に記載のロギング情報採取装置。
【請求項７】
プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取方法であって、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた特定情報を取得する取得ステップと、
制御テーブルに登録された該特定情報に関する制御情報と該取得ステップにおいて取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断ステップと、
該判断ステップにおいて採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御ステップとをそなえ、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取方法。
【請求項８】
該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、請求項７に記載のロギング情報採取方法。
【請求項９】
プログラムに組み込まれたロギング関数に対応するロギング情報を採取する機能をコンピュータに実行させるためのロギング情報採取プログラムであって、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、
制御テーブルに登録された該特定情報に関する制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、
該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部として、該コンピュータを機能させるとともに、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取プログラム。
【請求項１０】
該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、請求項９に記載のロギング情報採取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムに組み込まれたロギング関数に対応するロギング情報を採取する技術に関する。
【背景技術】
【０００２】
一般に、システムに不具合が発生した場合にその不具合を調査するために、プログラムに組み込まれたロギング関数によりロギング情報を採取する技術が知られている。
例えば、プログラム中に予め組み込まれたロギング関数がプログラムの実行過程において実行されると、コンピュータが、この実行されたロギング関数において対応付けられたロギング情報をメモリ等の記憶部に記憶する。これにより、システムに障害が発生した場合に、システム管理者が、記憶部に記憶されたロギング情報に基づき不具合調査を行なうことが可能となる。
【０００３】
また、例えば、トレース情報を呼び出すためのトレース関数がプログラム中の各トレースポイントに組み込まれ、各トレース関数の箇所を特定するためのユニークな情報であるトレースポイント情報が各トレース関数に埋め込まれることが知られている。この技術では、プログラム走行トレース取得装置が、プログラムの実行過程において実行されたトレース関数を取得し、操作者が指定したトレースポイント情報が埋め込まれたトレース関数に対応するトレース情報を選択的に採取してメモリ等の記憶部に記憶している。これにより、操作者が障害原因究明に必要と考えるトレース情報だけを確実に操作者に提示している。
【特許文献１】特開平１１−１６１５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、トレース情報が採取対象であるか否かの選択を指示するためにユニークな情報を管理する必要があることから、膨大な数のユニークな情報を管理するのが非常に困難である。
そのため、上記の技術は、個人や比較的小規模のプロジェクトに適用する際には問題とはならないが、大規模なプロジェクトやオープンソース等に適用する際には、膨大な数のトレース関数毎にトレース情報が採取対象であるか否かの選択を指示するのが非常に困難である。
【０００５】
本発明は、このような課題に鑑み創案されたもので、膨大な数のロギング関数がプログラム中に存在する場合であっても、これらのロギング関数を特定するための膨大な数のユニークな情報を別途管理することなく、ロギング採取処理を呼び出しているロギング関数を容易に特定することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、開示のロギング情報採取装置は、プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取装置であって、該ロギング関数を特定するための特定情報に関する制御情報を登録する制御テーブルと、該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、該制御テーブルに登録された該制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部とをそなえ、該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されている。
【０００７】
また、開示のロギング情報採取方法は、プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取方法であって、該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた特定情報を取得する取得ステップと、制御テーブルに登録された該特定情報に関する制御情報と該取得ステップにおいて取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断ステップと、該判断ステップにおいて採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御ステップとをそなえ、該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されている。
【０００８】
さらに、開示のロギング情報採取プログラムは、プログラムに組み込まれたロギング関数に対応するロギング情報を採取する機能をコンピュータに実行させるためのロギング情報採取プログラムであって、該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、制御テーブルに登録された該特定情報に関する制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部として、該コンピュータを機能させるとともに、該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されている。
【発明の効果】
【０００９】
開示の技術によれば、膨大な数のロギング関数がプログラム中に存在する場合であっても、これらのロギング関数を特定するための膨大な数のユニークな情報を別途管理することなく、プログラム中のロギング関数を容易に特定することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の一実施形態の説明
図１は本発明の一実施形態としてのロギング情報採取装置１０の構成例を模式的に示す図である。図２はそのロギング情報採取装置１０で用いられるロギング関数Ｌ’の記述例を示す図である。
【００１１】
本実施形態に係るロギング情報採取装置１０は、プログラムＰに組み込まれたロギング関数（ロギング制御関数）Ｌに対応するロギング情報（図示省略）を採取するものである。このロギング情報採取装置１０は、例えば、プログラムＰの実行過程においてロギング関数Ｌが実行される都度、後述するロギング採取処理を明示的に呼び出すようになっている。
【００１２】
ここで、プログラムＰは、ロギング情報採取装置１０内で所定の業務を行なうためのプログラムコードであって、例えば、図１に示すように、ファイルＡおよびファイルＢを有する。又、ファイルＡは、関数ａおよび関数ｂを有し、ファイルＢは、関数ｃを有する。
また、プログラムＰには、ロギング関数Ｌが組み込まれている。図１に示す例では、ロギング関数Ｌ１が関数ａに、ロギング関数Ｌ２が関数ｂに、ロギング関数Ｌ３およびロギング関数Ｌ４が関数ｃに、それぞれ組み込まれている。
【００１３】
なお、以下、ロギング関数を示す符号としては、複数のロギング関数のうち１つを特定する必要があるときは符号Ｌ１〜Ｌ４を用いるが、任意のロギング関数を指すときには符号Ｌを用いる。
ロギング関数Ｌは、後述するロギング採取処理を呼び出すためのＬＯＧ関数であって、特定情報およびメッセージ（message）が埋め込まれて構成されている。
【００１４】
特定情報は、プログラムＰにおいてロギング関数Ｌを特定するためのものであって、プログラムにおけるロギング関数Ｌの位置情報をそなえて構成されている。本実施形態においては、特定情報は、第一引数，第二引数および第三引数を有する。従って、本実施形態におけるロギング関数Ｌは、例えば、ＬＯＧ（第一引数，第二引数，第三引数，メッセージ）と表わされる。
【００１５】
第一引数は、プログラムＰにおいてロギング関数Ｌが組み込まれているファイルのファイル名を示すものである。
図１に示す例では、ロギング関数Ｌ１がファイルＡに組み込まれているので、ロギング関数Ｌ１の第一引数は、ファイルＡのファイル名“Ａ”を示している。以下同様に、ロギング関数Ｌ２の第一引数は、ファイルＡのファイル名“Ａ”を、ロギング関数Ｌ３およびロギング関数Ｌ４の第一引数は、ファイルＢのファイル名“Ｂ”を、それぞれ示している。
【００１６】
第二引数は、ファイルにおいてロギング関数Ｌが組み込まれている関数の関数名を示すものである。
図１に示す例では、ロギング関数Ｌ１が関数ａに組み込まれているので、ロギング関数Ｌ１の第二引数は、関数ａの関数名“ａ”を示している。以下同様に、ロギング関数Ｌ２の第二引数は、関数ｂの関数名“ｂ”を、ロギング関数Ｌ３およびロギング関数Ｌ４の第二引数は、関数ｃの関数名“ｃ”を、それぞれ示している。
【００１７】
第三引数は、関数におけるロギング関数Ｌの行番号を示すものである。
図１に示す例では、ロギング関数Ｌ１が関数ａのｘ行目に組み込まれているので、ロギング関数Ｌ１の第三引数は、関数ａにおけるロギング関数Ｌ１の行番号“ｘ”を示している。以下同様に、ロギング関数Ｌ２の第三引数は、関数ｂにおけるロギング関数Ｌ２の行番号“ｙ”を、ロギング関数Ｌ３の第三引数は、関数ｃにおけるロギング関数Ｌ３の行番号“ｍ”を、それぞれ示している。又、ロギング関数Ｌ４の第三引数は、関数ｃにおけるロギング関数Ｌ４の行番号“ｎ”を示している。
【００１８】
メッセージは、ロギング情報を生成する際に用いられる情報であって、例えば、プログラム作成者により任意の値や文字列が記述されている。
図１に示す例では、ロギング関数Ｌ１には、メッセージ“message 1”が組み込まれている。以下同様に、ロギング関数Ｌ２には、メッセージ“message 2”が、ロギング関数Ｌ３には、メッセージ“message 3”が、ロギング関数Ｌ４には、メッセージ“message 4”が、それぞれ組み込まれている。
【００１９】
なお、ロギング関数Ｌについては、プログラム作成者がプログラム作成時に抽象的な名称を記述するようになっている。
例えば、図２に示すようなＧＮＵ（GNU is Not Unix）コンパイラによりコンパイル可能な抽象的な名称で記述されたロギング関数Ｌ’がプログラムＰ中に組み込まれた場合には、ＧＮＵコンパイラのツールが、コンパイル時に、ロギング関数Ｌ’におけるファイル名，関数名，行番号等の抽象的な名称を具体的な値を示すロギング関数Ｌに置き換えてから自動的にコード生成を行なうようになっている。
【００２０】
ロギング情報管理装置１０は、図１に示すように、ロギング制御テーブル（制御テーブル）１１，処理部１２およびロギング領域（記憶部）１３をそなえたコンピュータとして構成されている。
図３は本発明の一実施形態としてのロギング情報採取装置１０におけるロギング制御テーブル１１の構成例を模式的に示す図である。
【００２１】
ロギング制御テーブル１１は、後述するコンソール２０（図１参照）からの指示により、採取対象となるロギング情報のロギング箇所を示す制御情報を登録（記憶）しておくテーブルであって、例えば、メモリ等の記憶装置により実現される。このロギング制御テーブル１１は、採取対象となるロギング情報に対応する特定情報と一致する制御情報を階層構造で登録するようになっている。即ち、ロギング制御テーブル１１は、特定情報に関する制御情報を登録するといえる。
【００２２】
具体的には、ロギング制御テーブル１１は、採取対象となるロギング情報に対応するロギング関数に埋め込まれた第一引数，第二引数および第三引数をそれぞれ示す第一制御情報，第二制御情報および第三制御情報を、第一制御情報（上位層）から第三制御情報（下位層）にかけて階層的に関連付けたツリー構造で登録する。従って、本実施形態においては、第一制御情報が、第一引数と同様にファイル名を示し、第二制御情報が、第二引数と同様に関数名を示し、第三制御情報が、第三引数と同様に行番号を示すのである。即ち、ロギング制御テーブル１１は、ファイル名（第一制御情報），関数名（第二制御情報）および行番号（第三制御情報）で区分されたツリー構造を登録するのである。
【００２３】
図３に示す例では、ロギング制御テーブル１１は、第一制御情報としてファイル名“Ａ”を、第二制御情報として関数名“ａ”を、第三制御情報として行番号“ｘ”を、第一制御情報から第三制御情報にかけてのツリー構造で登録する。これにより、ロギング関数Ｌ１に対応するロギング情報が採取対象としてロギング制御テーブル１１に登録されるのである。
【００２４】
また、ロギング制御テーブル１１は、第一制御情報としてファイル名“Ｂ”を、第二制御情報として関数名“ｃ”を、第三制御情報として行番号“ｍ”および行番号“ｎ”を、第一制御情報から第三制御情報にかけてのツリー構造で登録する。これにより、ロギング関数Ｌ３に対応するロギング情報およびロギング関数Ｌ４に対応するロギング情報が採取対象としてロギング制御テーブル１１に登録されるのである。
【００２５】
処理部１２は、ロギング情報採取装置１０においてロギング採取処理を実行するものであって、ＣＰＵ（Central Processing Unit）等の処理装置により実現される。この処理部１２は、例えば、取得部１４，判断部１５，生成部１６，記憶制御部１７，コマンド解析部１８および更新部１９として機能するようになっている。
取得部１４は、プログラムＰの実行過程においてロギング関数Ｌが実行される都度、この実行されたロギング関数Ｌを取得するものである。
【００２６】
具体的には、プログラムＰの実行過程においてロギング関数Ｌが実行されると、ロギング採取処理が呼び出される。そして、取得部１４は、実行されたロギング関数Ｌを取得するとともに、このロギング関数Ｌに埋め込まれた特定情報（第一引数，第二引数および第三引数）を取得する、即ち、ロギング関数Ｌから特定情報を渡されるようになっている。
判断部１５は、ロギング制御テーブル１１に登録された制御情報と取得部１４により取得した特定情報とに基づいて、この特定情報に対応するロギング情報が採取対象であるか否かを判断するものである（ロギング制御処理）。
【００２７】
具体的には、判断部１５は、取得部１４により第一引数，第二引数および第三引数が取得されると、ロギング制御テーブル１１を、テーブルのトップ（最上位層；図３参照）からツリー構造を下位層に向けてたどって第一制御情報（ファイル名），第二制御情報（関数名）および第三制御情報（行番号）の順でサーチする。そして、判断部１５は、以下の（１）〜（３）の全ての条件を満たした場合に、取得部１４により取得したロギング関数Ｌに対応するロギング情報が採取対象であると判断する。
【００２８】
（１）取得部１４により取得した第一引数がロギング制御テーブル１１に登録されたいずれかの第一制御情報と一致した場合。
（２）取得部１４により取得した第二引数がロギング制御テーブル１１に登録されたいずれかの第二制御情報と一致した場合。
（３）取得部１４により取得した第三引数がロギング制御テーブル１１に登録されたいずれかの第三制御情報と一致した場合。
【００２９】
従って、判断部１５は、取得部１４により取得した特定情報が、ロギング制御テーブル１１に登録された制御情報に含まれる場合に、取得した特定情報に対応するロギング情報が採取対象であると判断するのである。
本実施形態においては、取得部１４がロギング関数Ｌ１の第一引数“Ａ”，第二引数“ａ”および第三引数“ｘ”を取得すると、判断部１５は、取得部１４で取得された全ての引数がロギング制御テーブル１１に登録されているので、ロギング関数Ｌ１に対応するロギング情報が採取対象であると判断する。
【００３０】
また、取得部１４がロギング関数Ｌ２の第一引数“Ａ”，第二引数“ｂ”および第三引数“ｙ”を取得すると、判断部１５は、第二引数“ｂ”および第三引数“ｙ”がロギング制御テーブル１１に登録されていないので、ロギング関数Ｌ１に対応するロギング情報が採取対象ではないと判断する。
さらに、取得部１４がロギング関数Ｌ３の第一引数“Ｂ”，第二引数“ｃ”および第三引数“ｍ”を取得すると、判断部１５は、取得部１４で取得された全ての引数がロギング制御テーブル１１に登録されているので、ロギング関数Ｌ３に対応するロギング情報が採取対象であると判断する。
【００３１】
また、取得部１４がロギング関数Ｌ４の第一引数“Ｂ”，第二引数“ｃ”および第三引数“ｎ”を取得すると、判断部１５は、取得部１４で取得された全ての引数がロギング制御テーブル１１に登録されているので、ロギング関数Ｌ４に対応するロギング情報が採取対象であると判断する。
生成部１６は、取得部１４で取得したロギング関数Ｌに基づいて、判断部１５により採取対象であると判断されたロギング情報を生成するものである。即ち、生成部１６は、取得部１４で取得したロギング関数Ｌに対応するロギング情報のうち、判断部１５により採取対象であると判断されたロギング情報を生成するのである。例えば、ロギング情報は、ロギング関数Ｌに埋め込まれたメッセージをそなえるとともに、必要に応じて特定情報をそなえている。なお、ロギング情報の生成については、既知の種々の手法を用いることができる。
【００３２】
記憶制御部１７は、判断部１５により採取対象であると判断されたロギング情報を後述するロギング領域に記憶させる制御を行なうものである。本実施形態においては、記憶制御部１７は、生成部１６で生成されたロギング情報を後述するロギング領域１３に記憶させる制御を行なうようになっている。
図４は本発明の一実施形態としてのロギング情報採取装置１０に対する指示情報の入力例を示す図である。
【００３３】
コマンド解析部１８は、外部にあるコンソール２０から送信された指示情報（コマンド）を解析（コマンド解析）することにより、テーブル更新関数を生成するものである。
テーブル更新関数は、ロギング制御テーブル１１の更新処理を実行するための関数である。ここで、更新処理とは、ロギング制御テーブル１１における制御情報の追加（エントリの追加）や削除（エントリの削除）の処理である。
【００３４】
例えば、オペレータは、ロギング関数Ｌ１のロギング開始を指示する場合には、図４に示すように、ロギング開始指示を示す情報“log on”とともに、ファイル名“Ａ”，関数名“ａ”および行番号“ｘ”を指示情報としてコンソール２０に入力する。そして、コマンド解析部１８は、コンソール２０に入力された指示情報を受信すると、この受信した指示情報に基づいて、ロギング関数Ｌ１に対応するロギング情報を採取対象とするためのテーブル更新関数を生成する。具体的には、コマンド解析部１８は、第一制御情報〜第三制御情報を含むロギング開始指示用のテーブル更新関数を生成する。ここで、第一制御情報は、ロギング関数Ｌ１に埋め込まれた第一引数と一致する情報、即ち、ファイル名“Ａ”である。又、第二制御情報は、ロギング関数Ｌ１に埋め込まれた第二引数と一致する情報、即ち、関数名“ａ”である。更に、第三制御情報は、ロギング関数Ｌ１に埋め込まれた第三引数と一致する情報、即ち、行番号“ｘ”である。
【００３５】
なお、ロギング関数Ｌ３，Ｌ４のロギング開始を指示する場合についても、上述したロギング関数Ｌ１のロギング開始を指示する場合と同様である（図４参照）。
また、例えば、オペレータは、ロギング関数Ｌ２のロギング終了を指示する場合には、図４に示すように、ロギング終了指示を示す情報“log off”とともに、ファイル名“Ａ”，関数名“ｂ”および行番号“ｙ”を指示情報としてコンソール２０に入力する。そして、コマンド解析部１８は、コンソール２０に入力された指示情報を受信すると、この受信した指示情報に基づいて、ロギング関数Ｌ２に対応するロギング情報を採取対象から除外するためのテーブル更新関数を生成する。具体的には、コマンド解析部１８は、ロギング関数Ｌ２に埋め込まれた第一引数〜第三引数とそれぞれ一致する第一制御情報〜第三制御情報を含むロギング終了指示用のテーブル更新関数を生成する。ここで、第一制御情報は、ロギング関数Ｌ２に埋め込まれた第一引数と一致する情報、即ち、ファイル名“Ａ”である。又、第二制御情報は、ロギング関数Ｌ２に埋め込まれた第二引数と一致する情報、即ち、関数名“ｂ”である。更に、第三制御情報は、ロギング関数Ｌ２に埋め込まれた第三引数と一致する情報、即ち、行番号“ｙ”である。
【００３６】
更新部１９は、コマンド解析部１８で生成されたテーブル更新関数を用いて、ロギング制御テーブル１１の更新処理を実行するものである。
具体的には、更新部１９は、コマンド解析部１８でロギング開始指示用のテーブル更新関数が生成されると、このテーブル更新関数に含まれる第一制御情報〜第三制御情報をロギング制御テーブル１１に追加する処理を更新処理として実行するようになっている。  一方、更新部１９は、コマンド解析部１８でロギング終了指示用のテーブル更新関数が生成されると、このテーブル更新関数に含まれる第一制御情報〜第三制御情報をロギング制御テーブル１１から削除する処理を更新処理として実行するようになっている。
【００３７】
なお、更新部１９は、ロギング開始指示用のテーブル更新関数に含まれる第一制御情報〜第三制御情報が既にロギング制御テーブル１１に登録されている場合には、更新処理を実行せずに、その旨の通知をコンソール２０に返信するようになっている。又、更新部１９は、ロギング終了指示用のテーブル更新関数に含まれる第一制御情報〜第三制御情報がロギング制御テーブル１１に登録されていない場合にも、更新処理を実行せずに、その旨の通知をコンソール２０に返信するようになっている。
【００３８】
ロギング領域１３は、記憶制御部１７の制御により、ロギング情報を記憶するものであり、メモリ等の記憶装置により実現される。
上述の如く構成された本発明の一実施形態に係るロギング情報採取装置１０に用いられるプログラムＰの作成手順の一例について、図５に示すフローチャートに従って説明する。
【００３９】
プログラム作成者は、プログラムＰを作成する（ステップＡ１１）。この場合において、プログラム作成者は、プログラムＰ中の任意の箇所（呼出し箇所）に、ＧＮＵコンパイラによりコンパイル可能な抽象的な名称で記述されたロギング関数Ｌ’、ここでは、“LOG(_FILE_, _FUNCTION_, _LINE_, message 1)”を組み込む。
そして、コンピュータ（図示省略）は、プログラムＰのコンパイルを実行することにより、ロギング関数Ｌ’に埋め込まれた抽象的な名称を具体的な値、例えば、ロギング関数Ｌ１の場合には、“LOG(A, a, x, message 1)”に置き換えて、実行形式のコードを生成する（ステップＡ１２）。
【００４０】
コンパイルが実行されたプログラムＰが外部記録媒体２１（図１参照）に格納された後に、ロギング情報採取装置１０が、外部記録媒体２１に格納されたプログラムＰの実行を開始して（ステップＡ１３）、処理を終了する。
次に、上述の如く構成された本発明の一実施形態に係るロギング情報採取装置１０においてロギング開始の指示を行なう手順の一例について、図６に示すフローチャートに従って説明する。
【００４１】
先ず、オペレータは、コンソール２０等を用いて、採取対象にしたいプログラムＰにおけるロギング箇所、つまりファイル名，関数名および行番号を求める（ステップＢ１１）。
オペレータは、採取対象にしたいロギング関数Ｌのロギング開始指示をコンソール２０に入力する（ステップＢ１２）。
【００４２】
その後、プログラムＰの実行過程においてロギング関数Ｌが実行される都度、ロギング採取処理が呼び出され、処理部１２は、採取対象にしたロギング関数Ｌに対応するロギング情報をロギング領域１３に順次記憶する。オペレータは、ロギング領域１３に記憶されたロギング情報を取り出して、障害調査等に活用して（ステップＢ１３）、処理を終了する。
【００４３】
次に、上述の如く構成された本発明の一実施形態に係るロギング情報採取装置１０においてロギング情報を採取する動作の一例について、図７および図８に示すフローチャートに従って説明する。
プログラムＰの実行過程において実行されたロギング関数Ｌがロギング採取処理を呼び出すと、取得部１４は、ロギング採取処理を呼び出したロギング関数Ｌに埋め込まれた第一引数（ファイル名），第二引数（関数名）および第三引数（行番号）を取得する。
【００４４】
判断部１５は、ロギング制御テーブル１１に登録された第一制御情報の中から一の第一制御情報、図３に示す例では、ファイル名“Ａ”を選択し、この選択した一の第一制御情報と取得部１４で取得した第一引数とを比較する（ステップＣ１１）。
判断部１５は、取得部１４で取得した第一引数と選択した一の第一制御情報とが一致するか否かを判断する（ステップＣ１２）。
【００４５】
判断の結果、一致する場合には（ステップＣ１２の“ＹＥＳ”ルート参照）、判断部１５は、ロギング制御テーブル１１に登録された第二制御情報のうちの第一引数と一致した第一制御情報の配下の第二制御情報の中から一の第二制御情報、図３に示す例では、ファイル名“Ａ”の配下の関数名“ａ”を選択し、この選択した一の第二制御情報と取得部１４で取得した第二引数とを比較する（ステップＣ１３）。
【００４６】
判断部１５は、取得部１４で取得した第二引数と選択した一の第二制御情報とが一致するか否かを判断する（ステップＣ１４）。
判断の結果、一致する場合には（ステップＣ１４の“ＹＥＳ”ルート参照）、図８のフローに移行する（図７の符号“１”参照）。
一方、第二引数と一の第二制御情報とが一致しない場合には（ステップＣ１４の“ＮＯ”ルート参照）、判断部１５は、ロギング制御テーブル１１に次に登録されている第二制御情報、例えば、ファイル名“Ａ”の配下の関数名のうちの関数名“ａ”以外の関数名であって判断部１５により選択されていないものがあるか否かをチェックする（ステップＣ１５）。
【００４７】
チェックの結果、次に登録されている関数名がある場合には（ステップＣ１６の“ＹＥＳ”ルート参照）、判断部１５は、次に登録されている一の関数名を選択し、ステップＣ１３に戻る。
一方、次に登録されている関数名がない場合には（ステップＣ１６の“ＮＯ”ルート参照）、処理部１２は、ロギング情報の採取を行わずにロギング採取処理を終了する。そして、処理部１２は、プログラムＰの実行過程を復帰させる復帰処理を実行し、処理を終了する。
【００４８】
また、取得部１４で取得した第一引数と選択された一の第一制御情報とが一致しない場合には（ステップＣ１２の“ＮＯ”ルート参照）、判断部１５は、ロギング制御テーブル１１に次に登録されている第一制御情報、図３に示す例では、ファイル名“Ａ”以外のファイル名“Ｂ”であって判断部１５により選択されていないものがあるか否かをチェックする（ステップＣ１７）。
【００４９】
チェックの結果、次に登録されているファイル名がある場合には（ステップＣ１８の“ＹＥＳ”ルート参照）、判断部１５は、次に登録されている一のファイル名を選択し、ステップＣ１１に戻る。
一方、次に登録されているファイル名がない場合には（ステップＣ１８の“ＮＯ”ルート参照）、処理部１２は、ロギング情報の採取を行わずにロギング採取処理を終了する。そして、処理部１２は、プログラムＰの実行過程を復帰させる復帰処理を実行し、処理を終了する。
【００５０】
そして、図７のステップＣ１４において、取得部１４で取得した第二引数と選択された一の第二制御情報とが一致する場合には（ステップＣ１４の“ＹＥＳ”ルート参照）、図８のフローに移行し、判断部１５は、ロギング制御テーブル１１に登録された第三制御情報のうちの第二引数と一致した第二制御情報の配下の第三制御情報の中から一の第三制御情報、図３に示す例では、関数名“ａ”の配下の行番号“ｘ”を選択し、この選択した一の第三制御情報と取得部１４で取得した第三引数とを比較する（ステップＣ１９）。
【００５１】
判断部１５は、取得部１４で取得した第三引数と選択した一の第三制御情報とが一致するか否かを判断する（ステップＣ２０）。
判断の結果、一致する場合には（ステップＣ２０の“ＹＥＳ”ルート参照）、判断部１５は、取得部１４で取得したロギング関数Ｌに対応するロギング情報が採取対象であると判断する。そして、生成部１６がロギング情報を生成した後に、記憶制御部１６が生成部１６で生成したロギング情報をロギング領域に書き込んで（ステップＣ２１）、処理を終了する。
【００５２】
一方、第三引数と一の第三制御情報とが一致しない場合には（ステップＣ２０の“ＮＯ”ルート参照）、判断部１５は、ロギング制御テーブル１１に次に登録されている第三制御情報、例えば、関数名“ａ”の配下の行番号のうちの行番号“ｘ”以外の行番号であって判断部１５により選択されていないものがあるか否かをチェックする（ステップＣ２２）。
【００５３】
チェックの結果、次に登録されている行番号がある場合には（ステップＣ２３の“ＹＥＳ”ルート参照）、判断部１５は、次に登録されている一の行番号を選択し、ステップＣ１９に戻る。
一方、次に登録されている行番号がない場合には（ステップＣ２３の“ＮＯ”ルート参照）、処理部１２は、ロギング情報の採取を行わずにロギング採取処理を終了する。そして、処理部１２は、プログラムＰの実行過程を復帰させる復帰処理を実行し、処理を終了する。
【００５４】
次に、上述の如く構成された本発明の一実施形態に係るロギング情報採取装置１０においてロギング制御テーブル１１を更新する動作の一例について、図９に示すフローチャートに従って説明する。
コマンド解析部１８は、オペレータからの指示情報の受信を待つ（ステップＤ１１）。オペレータにより指示情報がコンソール２０に入力されると、コマンド解析部１８は、コンソール２０から指示情報を受信する。コマンド解析部１８は、コンソール２０から受信した指示情報を解析することにより、テーブル更新関数を生成する（ステップＤ１２）。
【００５５】
更新部１９は、コマンド解析部１８でテーブル更新関数が生成されると、このテーブル更新関数がロギング開始指示用のテーブル更新関数であるかロギング終了指示用のテーブル更新関数であるかを判定する（ステップＤ１３）。
判定の結果、ロギング開始指示用のテーブル更新関数である場合には（ステップＤ１３の“ＹＥＳ”ルート参照）、更新部１９は、ロギング開始指示用のテーブル更新関数に含まれる第一制御情報〜第三制御情報が既にロギング制御テーブル１１に登録されているか否かをチェックする（ステップＤ１４）。
【００５６】
チェックの結果、ロギング制御テーブル１１に登録されていない場合には（ステップＤ１５の“ＮＯ”ルート参照）、更新部１９は、テーブル更新関数に含まれる第一制御情報〜第三制御情報をロギング制御テーブル１１に追加する処理を実行する（ステップＤ１６）。更新部１９は、ロギング制御テーブル１１に追加した旨の通知をコンソール２０に返信し（ステップＤ１７）、ステップＤ１１に戻る。
【００５７】
一方、ロギング開始指示を示すテーブル更新関数に含まれる第一制御情報〜第三制御情報が既にロギング制御テーブル１１に登録されている場合には（ステップＤ１５の“ＹＥＳ”ルート参照）、更新部１９は、更新処理を実行せずに、その旨の通知をコンソール２０に返信し（ステップＤ１８）、ステップＤ１１に戻る。
また、判定の結果、ロギング終了指示用のテーブル更新関数である場合には（ステップＤ１３の“ＮＯ”ルート参照）、更新部１９は、ロギング終了指示用のテーブル更新関数に含まれる第一制御情報〜第三制御情報がロギング制御テーブル１１に登録されているか否かをチェックする（ステップＤ１９）。
【００５８】
チェックの結果、ロギング制御テーブル１１に登録されている場合には（ステップＤ２０の“ＹＥＳ”ルート参照）、更新部１９は、テーブル更新関数に含まれる第一制御情報〜第三制御情報をロギング制御テーブル１１から削除する処理を実行する（ステップＤ２１）。更新部１９は、ロギング制御テーブル１１から削除した旨の通知をコンソール２０に返信し（ステップＤ２２）、ステップＤ１１に戻る。
【００５９】
一方、ロギング終了指示用のテーブル更新関数に含まれる第一制御情報〜第三制御情報がロギング制御テーブル１１に登録されていない場合には（ステップＤ２０の“ＮＯ”ルート参照）、更新処理を実行せずに、その旨の通知をコンソール２０に返信し（ステップＤ１８）、ステップＤ１１に戻る。
このように、本発明の一実施形態としてのロギング情報採取装置１０によれば、ユニークな情報をロギング関数Ｌに埋め込むのではなく、プログラムＰにおける自己の位置情報を示すファイル名（第一引数），関数名（第二引数），行番号（第三引数）をロギング関数Ｌに埋め込む。この場合において、プログラム作成者は、プログラムＰ中の任意の箇所に、ＧＮＵコンパイラによりコンパイル可能な抽象的な文字列で記述されたロギング関数Ｌ’を組み込むことができる。そのため、プログラム作成者は、プログラムＰの作成過程においてプログラムＰ中のロギング関数Ｌ’の位置を移動させた場合であっても、ロギング関数Ｌ’に埋め込まれた引数の値を変更する必要がなくなる。従って、プログラム作成者は、具体的な値を意識することなく、抽象的な名称で記述されたロギング関数Ｌ’をプログラムＰに容易に組み込むことができる。
【００６０】
また、ロギング関数ＬにプログラムＰにおける自己の位置情報を示すファイル名（第一引数），関数名（第二引数），行番号（第三引数）を埋め込むことにより、大規模なプロジェクトやオープンソース等のように、膨大な数のロギング関数ＬがプログラムＰ中に存在する場合であっても、これらのロギング関数Ｌを特定するための膨大な数のユニークな情報を別途管理することなく、プログラムＰ中のロギング関数Ｌを容易に特定することができる。従って、ロギング採取処理を呼び出している個々のロギング関数Ｌ毎にそのロギング関数Ｌに対応するロギング情報を採取するか採取しないかの選択を動的に指示する場合において、ロギング採取処理を呼び出しているロギング関数Ｌを容易に特定し、必要なロギング情報のみを選択して採取することが可能となる。そのため、不具合調査等の早期解決を図ることができる。
【００６１】
〔２〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記実施形態では、ＧＮＵコンパイラによりコンパイル可能な抽象的な名称でロギング関数Ｌ’を記述した場合を例に説明している。しかしながら、それに限定されるものではなく、既知の種々のコンパイラによりコンパイル可能な抽象的な文字列でロギング関数を記述してもよく、又、具体的な位置情報をロギング関数に埋め込んでもよい。
【００６２】
また、上記実施形態では、ロギング関数Ｌの引数として用いられる位置情報がファイル名，関数名および行番号で構成された場合を例に説明している。しかしながら、それに限定されるものではなく、例えば、プログラムＰ中にファイルや関数が規定されていない場合には、位置情報が、プログラムＰにおけるロギング関数Ｌの行番号で構成されてもよい。又、プログラムＰ中に関数が規定されていない場合には、位置情報が、プログラムＰにおいてロギング関数Ｌが組み込まれているファイルのファイル名と、ファイルにおけるロギング関数Ｌの行番号とで構成されてもよい。
【００６３】
さらに、上記実施形態では、生成部１６が、判断部１５により採取対象であると判断されたロギング情報を生成する場合を例に説明している。しかしながら、それに限定されるものではなく、生成部１６が、取得部１４により取得した全てのロギング関数Ｌに対応するロギング情報を生成してもよい。この場合には、記憶制御部１７は、生成部１６で生成されたロギング情報のうち、判断部１５により採取対象であると判断されたロギング情報を選択してロギング領域１３に記憶させるようになっている。
【００６４】
また、上記実施形態では、ロギング開始指示を示す情報“log on”やロギング終了指示を示す情報“log off”とともに、ファイル名，関数名および行番号を指示情報としてコンソール２０に入力する場合を例に説明している。しかしながら、それに限定されるものではなく、例えば、ＧＵＩ（Graphical User Interface）を用いて指示情報を入力してもよい。
【００６５】
そして、処理部１２が、ロギング情報採取プログラムを実行することにより、これらの取得部１４，判断部１５，生成部１６，記憶制御部１７，コマンド解析部１８および更新部１９として機能するようになっている。
なお、これらの取得部１４，判断部１５，生成部１６，記憶制御部１７，コマンド解析部１８および更新部１９としての機能を実現するためのロギング情報採取プログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ−ＤＶＤ，ブルーレイディスク等），磁気ディスク，光ディスク，光磁気ディスク，半導体記憶装置等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク，半導体記憶装置等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００６６】
取得部１４，判断部１５，生成部１６，記憶制御部１７，コマンド解析部１８および更新部１９としての機能を実現する際には、内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサによって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ロギング情報採取装置１０がコンピュータとしての機能を有しているのである。
【００６７】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスク，半導体記憶装置のほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
【００６８】
〔３〕付記
（付記１）  プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取装置であって、
該ロギング関数を特定するための特定情報に関する制御情報を登録する制御テーブルと、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、
該制御テーブルに登録された該制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、
該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部とをそなえ、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取装置。
【００６９】
（付記２）  該位置情報は、該プログラムにおける該ロギング関数の行番号で構成されることを特徴とする、付記１に記載のロギング情報採取装置。
（付記３）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、付記１に記載のロギング情報採取装置。
【００７０】
（付記４）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおいて該ロギング関数が組み込まれている関数の関数名と、該関数における該ロギング関数の行番号とで構成されることを特徴とする、付記１に記載のロギング情報採取装置。
（付記５）  該判断部は、該取得部により取得した該特定情報が、該制御テーブルに登録された該制御情報に含まれる場合に、当該特定情報に対応する該ロギング情報が採取対象であると判断することを特徴とする、付記１〜４のいずれか１項に記載のロギング情報採取装置。
【００７１】
（付記６）  該制御テーブルの更新処理を実行する更新部をそなえることを特徴とする、付記１〜５のいずれか１項に記載のロギング情報採取装置。
（付記７）  プログラムに組み込まれたロギング関数に対応するロギング情報を採取するロギング情報採取方法であって、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた特定情報を取得する取得ステップと、
制御テーブルに登録された該特定情報に関する制御情報と該取得ステップにおいて取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断ステップと、
該判断ステップにおいて採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御ステップとをそなえ、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取方法。
【００７２】
（付記８）  該位置情報は、該プログラムにおける該ロギング関数の行番号で構成されることを特徴とする、付記７に記載のロギング情報採取方法。
（付記９）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、付記７に記載のロギング情報採取方法。
【００７３】
（付記１０）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数が組み込まれている関数の関数名と、該関数における該ロギング関数の行番号とで構成されることを特徴とする、付記７に記載のロギング情報採取方法。
（付記１１）  該判断ステップにおいて、該取得ステップにおいて取得した該特定情報が、該制御テーブルに登録された該制御情報に含まれる場合に、当該特定情報に対応する該ロギング情報が採取対象であると判断することを特徴とする、付記７〜１０のいずれか１項に記載のロギング情報採取方法。
【００７４】
（付記１２）  該制御テーブルの更新処理を実行する更新ステップをそなえることを特徴とする、付記７〜１１のいずれか１項に記載のロギング情報採取方法。
（付記１３）  プログラムに組み込まれたロギング関数に対応するロギング情報を採取する機能をコンピュータに実行させるためのロギング情報採取プログラムであって、
該ロギング関数が実行される都度、当該ロギング関数に埋め込まれた該特定情報を取得する取得部と、
制御テーブルに登録された該特定情報に関する制御情報と該取得部により取得した該特定情報とに基づいて、当該特定情報に対応する該ロギング情報が採取対象であるかを判断する判断部と、
該判断部により採取対象であると判断された該ロギング情報を記憶部に記憶させる制御を行なう記憶制御部として、該コンピュータを機能させるとともに、
該特定情報は、該プログラムにおける該ロギング関数の位置情報をそなえて構成されることを特徴とする、ロギング情報採取プログラム。
【００７５】
（付記１４）  該位置情報は、該プログラムにおける該ロギング関数の行番号で構成されることを特徴とする、付記１３に記載のロギング情報採取プログラム。
（付記１５）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおける該ロギング関数の行番号とで構成されることを特徴とする、付記１３に記載のロギング情報採取プログラム。
【００７６】
（付記１６）  該位置情報は、該プログラムにおいて該ロギング関数が組み込まれているファイルのファイル名と、該ファイルにおいて該ロギング関数が組み込まれている関数の関数名と、該関数における該ロギング関数の行番号とで構成されることを特徴とする、付記１３に記載のロギング情報採取プログラム。
（付記１７）  該判断部は、該取得部により取得した該特定情報が、該制御テーブルに登録された該制御情報に含まれる場合に、当該特定情報に対応する該ロギング情報が採取対象であると判断するように、該コンピュータを機能させることを特徴とする、付記１３〜１６のいずれか１項に記載のロギング情報採取プログラム。
【００７７】
（付記１８）  該制御テーブルの更新処理を実行する更新部として、該コンピュータを機能させることを特徴とする、付記１３〜１７のいずれか１項に記載のロギング情報採取プログラム。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態としてのロギング情報採取装置の構成例を模式的に示す図である。
【図２】本発明の一実施形態としてのロギング情報採取装置で用いられるロギング関数Ｌの記述例を示す図である。
【図３】本発明の一実施形態としてのロギング情報採取装置におけるロギング制御テーブルの構成例を模式的に示す図である。
【図４】本発明の一実施形態としてのロギング情報採取装置に対する指示情報の入力例を示す図である。
【図５】本発明の一実施形態に係るロギング情報採取装置に用いられるプログラムの作成手順の一例を示すフローチャートである。
【図６】本発明の一実施形態に係るロギング情報採取装置においてロギング開始の指示を行なう手順の一例を示すフローチャートである。
【図７】本発明の一実施形態に係るロギング情報採取装置においてロギング情報を採取する動作の一例を示すフローチャートである。
【図８】本発明の一実施形態に係るロギング情報採取装置においてロギング情報を採取する動作の一例を示すフローチャートである。
【図９】本発明の一実施形態に係るロギング情報採取装置においてロギング制御テーブルを更新する動作の一例を示すフローチャートである。
【符号の説明】
【００７９】
１０  ロギング情報採取装置
１１  ロギング制御テーブル（制御テーブル）
１２  処理部
１３  ロギング領域（記憶部）
１４  取得部
１５  判断部
１６  生成部
１７  記憶制御部
１８  コマンド解析部
１９  更新部
２０  コンソール
２１  外部記憶媒体
Ｌ，Ｌ１〜Ｌ４  ロギング関数
【図１】
2010039796.tif 000003
【図２】
2010039796.tif 000004
【図３】
2010039796.tif 000005
【図４】
2010039796.tif 000006
【図５】
2010039796.tif 000007
【図６】
2010039796.tif 000008
【図７】
2010039796.tif 000009
【図８】
2010039796.tif 000010
【図９】
2010039796.tif 000011