JP2009205488A - ロギング装置および記録媒体 - Google Patents
ロギング装置および記録媒体 Download PDFInfo
- Publication number
- JP2009205488A JP2009205488A JP2008047877A JP2008047877A JP2009205488A JP 2009205488 A JP2009205488 A JP 2009205488A JP 2008047877 A JP2008047877 A JP 2008047877A JP 2008047877 A JP2008047877 A JP 2008047877A JP 2009205488 A JP2009205488 A JP 2009205488A
- Authority
- JP
- Japan
- Prior art keywords
- log
- level
- log output
- error
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】ログファイルの容量を抑制しつつも、異常発生時には自動的にログ出力レベルを変更し、異常状態発生直後あるいは直前からの詳細な情報を取得できるようにしたロギング装置を提供するものである。
【解決手段】アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングするロギング装置において、上記アプリケーションプログラム中には、予め外部から設定されるログ出力条件と、各チェックポイントにおいて呼び出される複数のログ出力関数とが組み込まれ、通常時はログ出力関数のパラメータで指定されたエラーレベルが通常時ログ出力条件に合致する場合のみログ出力され、トリガーレベルに合致するエラーレベルが発生した場合には、異常時ログ出力レベルに合致したエラーレベルの詳細ログが出力されるようにしたものである。
【選択図】図1
【解決手段】アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングするロギング装置において、上記アプリケーションプログラム中には、予め外部から設定されるログ出力条件と、各チェックポイントにおいて呼び出される複数のログ出力関数とが組み込まれ、通常時はログ出力関数のパラメータで指定されたエラーレベルが通常時ログ出力条件に合致する場合のみログ出力され、トリガーレベルに合致するエラーレベルが発生した場合には、異常時ログ出力レベルに合致したエラーレベルの詳細ログが出力されるようにしたものである。
【選択図】図1
Description
本発明は、アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングするロギング装置および記録媒体に関するものである。
アプリケーションプログラム中にロギング関数を組み込み、パラメータで区分あるいは区分と採取条件を必要に応じて設定し、必要なデータのみをメモリに保存し、検索時に区分あるいは区分と検索条件を指定して必要なデータのみを整理して出力するように構成し、オンラインで動作するアプリケーションプログラムのチェックポイントのデータのうち必要なデータのみを採取すると共に、必要なデータのみを検索して出力するようにしたロギング装置が既に提案されている(例えば特許文献1を参照)。
上記特許文献1に示すアプリケーションは、各種業務処理(例えば商品の購入サービス等のオンライン業務処理)を行うアプリケーションプログラムであって、パラメータに従ってチェックポイントのデータをロギングするロギング関数を組み込んだものである。ロギング関数は、アプリケーション中に組み込まれ、チェックポイントのデータがパラメータで指定された区分およびロギング条件に合致するときに出力し、合致しないときに出力しないようにするものである。
ところが、上述した従来のロギング装置は、ログ出力関数を呼び出す際にエラーレベルを1つだけ指定し、指定されたエラーレベルが予め定められたログ出力レベル以上の場合にのみログ出力するように処理していた。従って、ログ出力するかどうかの判定条件は1つしか与えられず、ログ出力レベルの切り替えは設定変更画面から作業者がその都度手作業で行わなければならなかった。従って、システムの異常発生時には、異常状態が発生してから、調査担当者が現場に到着してログ出力レベルを概略ログから詳細ログに切り替えるため、異常状態発生から上記切り替えまでの間の詳細ログを取得することができなかった。また、常時、詳細ログを出力するとなると、ログファイルサイズが膨大になるという問題があった。本発明は上記のような課題を解決するためになされたもので、ログファイルの容量を抑制しつつも、異常発生時には自動的にログ出力レベルを変更し、異常状態発生直後あるいは直前からの詳細な情報を取得できるようにしたロギング装置を提供するものである。
アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングするロギング装置において、上記アプリケーションプログラム中には、予め外部から設定されるログ出力条件と、各チェックポイントにおいて呼び出される複数のログ出力関数とが組み込まれ、通常時はログ出力関数のパラメータで指定されたエラーレベルが通常時ログ出力条件に合致する場合のみログ出力され、トリガーレベルに合致するエラーレベルが発生した場合には、異常時ログ出力レベルに合致したエラーレベルの詳細ログが出力されるようにしたものである。
この発明によれば、アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングする際、通常時はログ出力をキャッシュに一時保管し、異常発生時には自動的にログ出力レベルを切り替えて現在の異常時ログを出力したり、直前の一時保管ログを出力すると共に現在の異常時ログを出力するようにしたので、ログファイルの容量を抑制しながら、異常状態発生直後あるいは直前からの詳細な情報を取得できるようになる効果を有する。
実施の形態1.
図1はこの発明の実施の形態1のロギング装置におけるシステム構成図を示している。図1において、1は電子計算機システムに組み込まれたアプリケーションで、データ記憶領域に記憶されたログ出力条件101と、処理手順記憶領域に記憶された各チェックポイントにおいて呼び出される複数のログ出力関数102とを内包している。2は上記アプリケーション1のログ出力条件101を外部から設定する設定変更画面、3は上記ログ出力関数102から出力されたログデータを一時保管するログファイル、31は上記ログファイルに出力されるログデータの具体的内容、11はログ出力条件101の内容、12は上記ログ出力関数102にて指定するパラメータの内容である。
図1はこの発明の実施の形態1のロギング装置におけるシステム構成図を示している。図1において、1は電子計算機システムに組み込まれたアプリケーションで、データ記憶領域に記憶されたログ出力条件101と、処理手順記憶領域に記憶された各チェックポイントにおいて呼び出される複数のログ出力関数102とを内包している。2は上記アプリケーション1のログ出力条件101を外部から設定する設定変更画面、3は上記ログ出力関数102から出力されたログデータを一時保管するログファイル、31は上記ログファイルに出力されるログデータの具体的内容、11はログ出力条件101の内容、12は上記ログ出力関数102にて指定するパラメータの内容である。
図2はこの発明の実施の形態1のロギング装置におけるログ出力関数の処理の流れを示すフローチャート、図3は図2のログ出力関数を用いたアプリケーションの処理の例を示している。図1に示すログ出力条件11にある通常時ログ出力レベルとは、通常状態におけるログ出力条件となるエラーレベルを示す。エラーレベルとは、ログの重要度、詳細度を示すレベルであり、たとえば、debug、info、warning、error、fatalなどが考えられる。本発明ではログ出力関数のパラメータで指定されたエラーレベルと、ログ出力条件の中のエラーレベルと比較する必要があるため、例えば8ビットデータで数値化し、debug<info<warning<error<fatalの順に大きくなる数値を定義しておくことにより、値の大小関係により条件の合致かどうかを判定できるようにする。
debugとはこの場合、アプリケーションの処理状況を逐一示す詳細なトレースログであり、infoとは大まかな処理状況を示す概略ログ、warningはアプリケーションの処理に軽度の問題が発生したが当該処理を続行できるレベル、errorは当該処理の続行が不可であるためスキップするが、他の処理を続行できる中程度の故障状態、fatalはアプリケーションの処理が続行不可能となる重程度の故障状態を示す。
トリガーレベルとは、異常状態と判定するログ出力レベルを示す。異常時ログ出力レベルとは、トリガーレベル検出により異常状態と判定した時に出力するログ出力レベルを示す。異常状態フラグとは、異常状態を持続中であることを示すフラグである。異常時ログ出力期間とは、異常状態を継続する期間を示す。異常状態開始時刻とは、異常状態を検出して異常状態フラグを立てた時刻を示す。
また、ログ出力関数102におけるパラメータ12において、チェックポイントIDとは、アプリケーションの処理の流れにおけるログ出力関数の呼び出し場所を一意に示す記号または番号であり、ログ出力関数の通番、アプリケーション処理の行数などが考えられる。エラーレベルとは、当該ログ出力関数にて出力する情報の重要度、詳細度を示すものであり、上記ログ出力条件11と同じエラーレベル(debug、info、warning、error、fatal)などが考えられる。上記エラーレベルがログ出力条件11にある通常時ログ出力レベルの条件に合う場合のみログファイル3にログが出力され、そこで一時保管されるものである。ログメッセージはログ出力したい情報の内容である。
また、ログファイル3に出力されるログ出力内容31において、ログ出力日時とは、ログを出力した日付、時間を示す。ログ出力元アプリケーション名とは、当該ログを出力したアプリケーション名であり、ログ出力関数内部で付加される情報である。チェックポイントIDとは、ログ出力関数のパラメータ12にて渡されるチェックポイントIDである。エラーレベルとは、ログ出力関数のパラメータ12にて渡されるエラーレベルであり、たとえば、debug、info、warning、error、fatalなどが考えられる。ログメッセージとは、ログ出力関数のパラメータ12にて渡されるログメッセージである。図4(a)にログ出力関数の呼び出し例を示しており、ID010はチェックポイントID名、infoはエラーレベル、“通信ソケットオープン”はログメッセージの例である。また、図4(b)にログ出力内容の例を示しており、ログ出力日時、ログ出力元アプリケーション名(com01)、チェックポイントID名、エラーレベル、ログメッセージの順に示している。
以下、図1〜図4を用いて、本発明のロギング装置の動作について説明する。アプリケーション1の実行時、予め、ログ出力条件設定画面2から、ログ出力条件11を設定しておく。この実施形態では図3のログ出力条件として示しているように、通常時ログ出力レベルにinfo、トリガーレベルにerror、異常時ログ出力レベルにdebug、異常時ログ出力期間に10分を指定した例を示している。アプリケーションプログラムの実行を開始すると、先ず図3のチェックポイント1でログ出力関数(1)がエラーレベル=debugで呼び出される。この時のログ出力関数の動作を図2のフローチャートで説明する。
図2のステップST1において、ログ出力関数のパラメータ12からエラーレベル(debug)を取得し、ステップST2に進む。ステップST2では、アプリケーション1のデータ記憶領域101からログ出力条件11を読み込みステップST3に進む。ステップST3では、ログ出力条件11の異常状態フラグがONかどうか判定し、ONの場合は、ステップST4へ進み、OFFの場合はステップST7に進む。ステップST4では、現在時刻が、ログ出力条件11の中の異常状態開始時刻+異常時ログ出力期間以降であるかどうかを判定し、現在時刻が、ログ出力条件11の中の異常状態開始時刻+異常時ログ出力期間より小さいとき、すなわち異常時ログを出力する期間中であると判定した場合はステップST6に進み、異常時ログを出力する期間を終えたと判定した場合には、ステップST5に進む。
ステップST6では、ログ出力関数のパラメータで指定されたエラーレベルが異常時ログ出力レベル以上であるかどうかを判定し、判定条件に合致した場合にはステップST11に進み、合致しなかった場合にはステップST15に進みログ出力関数を終了する。ステップST11では、ログ出力関数のパラメータ12からチェックポイントID、ログメッセージを取得し、ステップST12に進む。ステップST12では現在日時、アプリケーション名を取得し、ステップST13に進む。ステップST13では、ログ内容を生成しステップST14に進む。ステップST14ではログメッセージをログファイル3に出力し、ステップST15に進みログ出力関数の動作を終了する。
ステップST5では、ログ出力条件11の異常状態フラグにOFFを設定し、ステップST7に進む。ステップST7では、ログ出力関数のパラメータ12から取得したエラーレベルが、ログ出力条件11のトリガーレベルに合致するかどうかを判定し、合致する場合にはステップST8に進み、合致しない場合には、ステップST10に進む。ステップST8では、異常状態フラグにONを設定し、ステップST9に進む。ステップST9では、ログ出力条件11の異常状態開始時刻に現在時刻を設定し、ステップST11に進む。ステップST10では、エラーレベルが通常時ログ出力レベルに合致するかどうかを判定し、合致する場合にはステップST11に進み、合致しない場合は、ステップST15に進みログ出力関数の処理を終了する。
図3のチェックポイント1では、ログ出力関数(1)がエラーレベル=debugで呼び出されているため、図2のフローチャートでは、ステップST1→ステップST2→ステップST3(異常状態フラグがOFF)→ステップST7(エラーレベルがdebug、トリガーレベルがerrorのためNoとなる)→ステップST10(エラーレベルがdebug、通常時ログ出力レベルがinfoのためNoとなる)→ステップST15の順で処理が進み、異常状態フラグがOFFであり、かつ、エラーレベルdebugが、通常時ログ出力条件infoやトリガーレベルerrorに合致しないため、ログ出力は行われない。
図3のチェックポイント2では、ログ出力関数(2)がエラーレベル=infoで呼び出されているため、図2のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST7(エラーレベルがinfo、トリガーレベルがerrorのためNoとなる)→ステップST10(エラーレベルがinfo、通常時ログ出力レベルがinfoのためYesとなる)→ステップST11→ステップST12→ステップST13→ステップST14 →ステップST15の順に処理が進み、エラーレベルinfoが通常時ログ出力条件infoに合致するため、ログ出力が行われ、ログファイル3に保管される。
図3のチェックポイント3では、ログ出力関数(3)がエラーレベル=errorで呼び出されているため、図2のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST7(エラーレベルerror、トリガーレベルerrorのためYes)→ステップST8→ステップST9→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進み、エラーレベルerrorがトリガーレベルに合致するため、異常状態フラグがONになって(ステップST8)、異常状態開始時刻に現在時刻が設定され(ステップST9)、ログ出力が実施される。
次に、図3のチェックポイント4では、ログ出力関数(4)がエラーレベル=debugで呼び出されている。通常時であれば、debugは、通常時ログ出力でレベルinfoの条件に合致しないためにログ出力がなされないが、異常状態フラグがONであり、かつ、異常状態ログ出力レベル(debug)に合致することから、異常発生時の詳細ログ出力を自動的に行う処理が動作し、ログ出力が行われる。すなわち、図2のフローチャートでは、ステップST1→ステップST2→ステップST3(異常状態フラグON)→ステップST4(異常時ログを出力する期間中)→ステップST6(エラーレベルdebug、異常時ログdebugのためYes)→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進む。
図3のチェックポイントNまでログ出力条件11の異常時ログ出力期間が持続する場合は、チェックポイント3からチェックポイントNまではエラーレベルdebug以上のログが異常時ログ出力条件に合致するため詳細ログが出力される。チェックポイントNとチェックポイントN+1の間に異常時ログ出力期間が終了すると、すなわち、チェックポイントN+1での時刻が異常状態開始時刻+異常時ログ出力期間以降であった場合、図2のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST4→ステップST5→ステップST7(エラーレベルdebug、トリガーレベルerrorであるためNo)→ステップST10(エラーレベルdebug、通常時ログ出力レベルinfoであるためNo)→ステップST15の順に処理が進むため、異常状態フラグはOFFに設定され、ログ出力も行われない。図3のチェックポイントN+2では、エラーレベル=infoは通常時のログ出力条件に合致するため、チェックポイント2と同じくログ出力が行われる。
以上説明したように、この実施の形態1によれば、通常時はパラメータで指定されたエラーログが通常時ログ出力条件に合致する場合のみログ出力されるため、通常時におけるログ出力の量は少ない。また、トリガーレベルに合致するエラーレベルが発生した場合には、異常時ログ出力レベルに合致したエラーレベルのログが出力され、自動的により詳細なログを出力するようになる。すなわち、通常時は、ログ出力量を抑えてログファイルの容量を抑制し、異常発生時には詳細なログを出力するように自動的に切り換えるため、異常発生直後から詳細なログ出力を得られるようになり、ソフトウエアの保守性が飛躍的に向上するものである。
実施の形態2.
実施の形態1では、異常発生直後から詳細なログを取れるようにしたが、異常発生の原因を探るためには、異常発生の直前の詳細なログの調査が必要な場合がある。本実施の形態2は、これを解決するためになされたもので、異常発生直前のログをキャッシュに記録することにより、異常発生直前から異常発生直後に亘って連続した詳細ログを出力できるようにしたものである。
実施の形態1では、異常発生直後から詳細なログを取れるようにしたが、異常発生の原因を探るためには、異常発生の直前の詳細なログの調査が必要な場合がある。本実施の形態2は、これを解決するためになされたもので、異常発生直前のログをキャッシュに記録することにより、異常発生直前から異常発生直後に亘って連続した詳細ログを出力できるようにしたものである。
図5は、この発明の実施の形態2のロギング装置におけるシステム構成図で、図1に対応するものである。図5において、図1と同じ記号は同一部分を示している。ログ出力条件11にはログキャッシュ保存期間が追加されている。ログキャッシュ保存期間とは、異常発生前のログを一定期間キャッシュに保存するための保存期間を示すパラメータである。また、103はログキャッシュ記憶領域である。
図6は、この発明の実施の形態2のロギング装置におけるログ出力関数の処理の流れを示すフローチャートであり、図7はこの発明の実施の形態2のロギング装置におけるログ出力関数を用いたアプリケーションの処理例を示す。
以下、図5〜図7を用いて、本発明のロギング装置の動作について説明する。アプリケーション1の実行時、予め、ログ出力条件設定画面2から、ログ出力条件11を設定しておくのは実施の形態1と同様である。
以下、図5〜図7を用いて、本発明のロギング装置の動作について説明する。アプリケーション1の実行時、予め、ログ出力条件設定画面2から、ログ出力条件11を設定しておくのは実施の形態1と同様である。
図7では例えば、通常時出力レベルにinfo、トリガーレベルにerror、異常時ログ出力レベルにdebug、異常時ログ出力期間に10分、ログキャッシュ保存期間に3分を指定している。図7のチェックポイント1でログ出力関数(1)がエラーレベル=debugで呼び出しされた時のログ出力関数の動作を図6のフローチャートで説明する。図6のステップST1において、ログ出力関数のパラメータからエラーレベル(debug)を取得し、ステップST2に進む。ステップST2では、アプリケーション1のデータ記憶領域101からログ出力条件11を読み込みステップST3に進む。
ステップST3では、ログ出力条件11の異常状態フラグがONかどうか判定し、ONの場合は、ステップST4へ進み、OFFの場合はステップST7に進む。ステップST4では、現在時刻が、ログ出力条件11の中の異常状態開始時刻+異常時ログ出力期間以降であるかどうかを判定し、異常時ログを出力する期間中であると判定した場合はステップST6に進み、異常時ログを出力する期間を終えたと判定した場合には、ステップST5に進む。ステップST6では、ログ出力関数のパラメータで指定されたエラーレベルが異常時ログ出力レベル以上であるかどうかを判定し、判定条件に合致した場合にはステップST11に進み、合致しなかった場合にはステップST15に進みログ出力関数を終了する。
ステップST11では、ログ出力関数のパラメータからチェックポイントID、ログメッセージを取得し、ステップST12に進む。ステップST12では現在日時、アプリケーション名を取得し、ステップST13に進む。ステップST13では、ログ内容を生成しステップST14に進む。ステップST14ではログメッセージをログファイルに出力し、ステップST15に進みログ出力関数を終了する。ステップST5では、ログ出力条件11の異常状態フラグにOFFを設定し、ステップST7に進む。ステップST7では、ログ出力関数のパラメータから取得したエラーレベルが、ログ出力条件11のトリガーレベルに合致するかどうかを判定し、合致する場合にはステップST8に進み、合致しない場合には、ステップST10に進む。
ステップST8では、異常状態フラグにONを設定し、ステップST9に進む。ステップST9では、ログ出力条件11の異常状態開始時刻に現在時刻を設定し、ステップST91に進む。ステップST91では、ログキャッシュの内容をすべてログファイルに出力し、ステップST92に進む。ステップST92ではログキャッシュをクリアし、ステップST11に進む。ステップST10では、エラーレベルが通常時ログ出力レベルに合致するかどうかを判定し、合致する場合にはステップST11に進み、合致しない場合は、ステップST101に進む。
ステップST101ではエラーレベルが異常時ログ出力レベルに合致するかどうかを判定し、合致する場合にはステップST102に進み、合致しない場合は、ステップST15に進みログ出力関数を終了する。ステップST102では、ログ出力関数のパラメータ12からチェックポイントID、ログメッセージを取得し、ステップST103に進む。ステップST103では現在日時、アプリケーション名を取得し、ステップST104に進む。ステップST104では、ログ内容を生成しステップST105に進む。ステップST105ではログキャッシュにログを追加しステップST106に進む。ステップST106では、現在時刻からログファイル保存期間を引いた時刻以前のログをログキャッシュから削除しステップST15に進みログ出力関数を終了する。
図7のチェックポイント1では、ログ出力関数(1)がエラーレベル=debugで呼び出されているため、図6のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST7(エラーレベルdebug、トリガーレベルerrorのためNo)→ステップST10(エラーレベルdebug、通常時ログ出力レベルinfoのためNo)→ステップST101(エラーレベルdebug、異常時ログ出力レベルdebugのためYes)→ステップST102→ステップST103→ステップST104→ステップST105→ステップST106→ステップST15の順で処理が進み、異常状態フラグがOFFであり、かつ、エラーレベルdebugが、通常時ログ出力条件infoやトリガーレベルerrorに合致しないため、ログ出力は行われないが、エラーレベルが異常時ログ出力レベル以上のため、ログキャッシュへの保存は行われる。その際、ログキャッシュ保存期間を過ぎた古いログはキャッシュから削除される(ステップST106)。
図7のチェックポイント2では、ログ出力関数(2)がエラーレベル=infoで呼び出されているため、図6のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST7(エラーレベルinfo、トリガーレベルerrorでNo)→ステップST10(エラーレベルinfo、通常時ログ出力レベルinfoでYes)→ステップST11→ステップST12→ステップST13→ステップST14 →ステップST15の順に処理が進み、エラーレベルinfoが通常時ログ出力条件infoに合致するため、ログ出力が行われる。
図6のチェックポイント3では、ログ出力関数(3)がエラーレベル=errorで呼び出されているため、図6のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST7(エラーレベルerror、トリガーレベルerrorでYes)→ステップST8→ステップST9→ステップST91→ステップST92→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進み、エラーレベルerrorがトリガーレベルに合致するため、異常状態フラグがONになり、異常状態開始時刻に現在時刻が設定され、まずログキャッシュ内容が出力され、ログキャッシュ内容がクリアされた後、ログ出力が実施される。
図6のチェックポイント4では、ログ出力関数(4)がエラーレベル=debugで呼び出されている。通常時であれば、debugは、通常時ログ出力レベルinfoの条件に合致されないためにログ出力がされないが、異常状態フラグがONであり、かつ、異常状態ログ出力レベルに合致することから、異常発生時の詳細ログ出力を自動的に行う処理が動作し、ログ出力が行われる。すなわち、図6のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST4→ステップST6→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進む。
図7のチェックポイントNまでログ出力条件11の異常時ログ出力期間が持続する場合は、チェックポイント3からチェックポイントNまではエラーレベルdebug以上のログが異常時ログ出力条件に合致するため詳細ログが出力される。チェックポイントNとチェックポイントN+1の間に異常時ログ出力期間が終了すると、すなわち、チェックポイントN+1での時刻が異常状態開始時刻+異常時ログ出力期間以降であった場合、図6のフローチャートでは、ステップST1→ステップST2→ステップST3→ステップST4→ステップST5→ステップST7→ステップST10→ステップST101→ステップST102→ステップST103→ステップST104→ステップST105→ステップST106→ステップST15の順に処理が進むため、異常状態フラグはOFFに設定され、ログ出力も行われないが、ログキャッシュへの保存が行われる。
図6のチェックポイントN+2では、エラーレベル=infoは通常時のログ出力条件に合致するため、チェックポイント2と同じくログ出力が行われる。
以上述べたように実施の形態2によれば、異常発生の直前の詳細なログ出力ができるようになるため、異常発生直前から異常発生直後に亘る詳細な状況を取得できるようになり、ソフトウエアの保守性が更に向上する効果がある。
以上述べたように実施の形態2によれば、異常発生の直前の詳細なログ出力ができるようになるため、異常発生直前から異常発生直後に亘る詳細な状況を取得できるようになり、ソフトウエアの保守性が更に向上する効果がある。
実施の形態3.
実施の形態2では、異常発生の直前から詳細ログを取得できるようにしていたが、1つのログファイルに様々な異常事象のログが出力されるため、着目している異常事象に関係あるログかどうかの判別が煩雑になるという問題点があった。本実施の形態3はこの問題を解決するために考え出されたもので、異常事象毎に別々のログファイルにログを出力できるようにしている。
実施の形態2では、異常発生の直前から詳細ログを取得できるようにしていたが、1つのログファイルに様々な異常事象のログが出力されるため、着目している異常事象に関係あるログかどうかの判別が煩雑になるという問題点があった。本実施の形態3はこの問題を解決するために考え出されたもので、異常事象毎に別々のログファイルにログを出力できるようにしている。
図8は、この発明の実施の形態3のロギング装置におけるシステム構成図である。図8において、図1と同じ記号は同じものを示す。4は異常事象別ログファイルであり、内容41ではファイル先頭に異常事象発生日時を記録している。図9は、この発明の実施の形態3のロギング装置におけるログ出力関数の処理の流れを示すフローチャート、図10はこの発明の実施の形態3のロギング装置におけるログ出力関数を用いたアプリケーションの処理例である。
以下、図8〜図10を用いて、本発明のロギング装置の動作について説明する。アプリケーション1の実行時、予め、ログ出力条件設定画面2から、ログ出力条件11を設定しておく。ここでは先の実施の形態2と同じく、図10に示すように、通常時出力レベルにinfo、トリガーレベルにerror、異常時ログ出力レベルにdebug、異常時ログ出力期間に10分、ログキャッシュ保存期間に3分を指定している。図9のチェックポイント1でログ出力関数(1)がエラーレベル=debugで呼び出しされた時のログ出力関数の動作を図9のフローチャートで説明する。
図9のステップST1において、ログ出力関数のパラメータ12からエラーレベル(debug)を取得し、ステップST2に進む。ステップST2では、アプリケーション1のデータ記憶領域101からログ出力条件11を読み込みステップST21に進む。ステップST21では、ログ出力先の設定をクリアし、ステップST3に進む。ステップST3では、ログ出力条件11の異常状態フラグがONかどうか判定し、ONの場合は、ステップST4へ進み、OFFの場合はステップST7に進む。ステップST4では、現在時刻が、ログ出力条件11の中の異常状態開始時刻+異常時ログ出力期間以降であるかどうかを判定し、異常時ログを出力する期間中であると判定した場合はステップST6に進み、異常時ログを出力する期間を終えたことを判定した場合には、ステップST5に進む。
ステップST6では、ログ出力関数のパラメータ12で指定されたエラーレベルが異常時ログ出力レベル以上であるかどうかを判定し、判定条件に合致した場合にはステップST61に進み、合致しなかった場合にはステップST15に進みログ出力関数を終了する。ステップST61ではログ出力先に異常事象別ログファイルを追加し、ステップST10に進む。ステップST10ではエラーレベルが通常時ログ出力レベル以上かどうかを判定し、条件に合致すればステップST110に進み、合致しない場合はステップST11に進む。
ステップST110では、ログ出力先に一般ログファイルを追加し、ステップST11に進む。ステップST11では、ログ出力関数のパラメータ12からチェックポイントID、ログメッセージを取得し、ステップST12に進む。ステップST12では現在日時、アプリケーション名を取得し、ステップST13に進む。ステップST13では、ログ内容を生成しステップST14に進む。ステップST14ではログメッセージをログ出力先に出力し、ステップST15に進みログ出力関数を終了する。
ステップST5では、ログ出力条件11の異常状態フラグにOFFを設定し、ステップST7に進む。ステップST7では、ログ出力関数のパラメータから取得したエラーレベルが、ログ出力条件11のトリガーレベルに合致するかどうかを判定し、合致する場合にはステップST8に進み、合致しない場合には、ステップST101に進む。ステップST8では、異常状態フラグにONを設定し、ステップST9に進む。ステップST9では、ログ出力条件11の異常状態開始時刻に現在時刻を設定し、ステップST901に進む。
ステップST901では異常事象別のログファイルを新規に作成し、ステップST902に進む。ステップST902では異常事象開始時刻を異常事象別ログファイルの先頭に記録し、ステップST91に進む。ステップST91では、ログキャッシュの内容をすべて異常事象別ログファイルに出力し、ステップST92に進む。ステップST92ではログキャッシュをクリアし、ステップST61に進む。ステップST61ではログ出力先に異常事象別ログファイルを追加し、ステップST10に進む。
ステップST101では、エラーレベルが異常時ログ出力レベル以上かどうかを判定し、判定条件に合致する場合は、ステップST106に進み、合致しない場合は、ステップST10に進む。ステップST106では、現在時刻からログファイル保存期間を引いた時刻以前のログをログキャッシュから削除しステップST107に進む。ステップST107ではログ出力先にログキャッシュを追加し、ステップST10に進む。
図10のチェックポイント1では、ログ出力関数(1)がエラーレベル=debugで呼び出されているため、図9のフローチャートでは、ステップST1→ステップST2→ステップST21→ステップST3→ステップST7(エラーレベルがdebug、トリガーレベルがerrorであるためNo)→ステップST101(エラーレベルがdebug、異常時ログ出力レベルがdebugのためYes)→ステップST106→ステップST107→ステップST10(エラーレベルがdebug、通常時ログ出力レベルがinfoのためNo)→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順で処理が進み、異常状態フラグがOFFであり、かつ、エラーレベルdebugが、通常時ログ出力条件infoやトリガーレベルerrorに合致しないため、ログ出力は行われないが、エラーレベルが異常時ログ出力レベル以上のため、ログキャッシュがログ出力先へ追加され、ログ出力はログキャッシュに対して行われる。その際、ログキャッシュ保存期間を過ぎた古いログはキャッシュから削除される。
図10のチェックポイント2では、ログ出力関数(2)がエラーレベル=infoで呼び出されているため、図9のフローチャートでは、ステップST1→ステップST2→ステップST21→ステップST3→ステップST7(エラーレベルがinfo、トリガーレベルがerrorであるためNo)→ステップST101(エラーレベルがinfo、異常時ログ出力レベルがdebugのためNo)→ステップST10(エラーレベルがinfo、通常時ログ出力レベルがinfoのためYes)→ステップST110→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進み、エラーレベルinfoが通常時ログ出力条件infoに合致するため、ログ出力先にログキャッシュと一般ログファイルが追加され、ログキャッシュと一般ログファイルへのログ出力が行われる。
図9のチェックポイント3では、ログ出力関数(3)がエラーレベル=errorで呼び出されているため、図9のフローチャートでは、ステップST1→ステップST2→ステップST21→ステップST3→ステップST7(エラーレベルがerror、トリガーレベルがerrorのためYes)→ステップST8→ステップST9→ステップST901→ステップST902→ステップST91→ステップST92→ステップST61→ステップST10 →ステップST110 →ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進み、エラーレベルerrorがトリガーレベルに合致するため、異常状態フラグがONになり、異常状態開始時刻に現在時刻が設定され、まずログキャッシュ内容がエラー事象別ログファイルに出力され、ログキャッシュ内容がクリアされた後、ログ出力先に異常事象別ログファイルが追加される。よって、ログ出力がエラー事象別ログファイルと一般ログファイルに出力される。
図9のチェックポイント4では、ログ出力関数(4)がエラーレベル=debugで呼び出されている。通常時であれば、debugは、通常時ログ出力でレベルinfoの条件に合致されないためにログ出力がされないが、異常状態フラグがONであり、かつ、異常状態ログ出力レベルに合致することから、異常発生時の詳細ログ出力を自動的に行う処理が動作し、ログ出力が行われる。すなわち、図9のフローチャートでは、ステップST1→ステップST2→ステップST21→ステップST3→ステップST4(異常時ログを出力する期間中)→ステップST6(エラーレベルがdebug、異常時ログ出力レベルがdebugのためYes)→ステップST61→ステップST10→ステップST110→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進む。
図9のチェックポイントNまでログ出力条件11の異常時ログ出力期間が持続する場合は、チェックポイント3からチェックポイントNまではエラーレベルdebug以上のログが異常時ログ出力条件に合致するため詳細ログが出力される。チェックポイントNとチェックポイントN+1の間に異常時ログ出力期間が終了すると、すなわち、チェックポイントN+1での時刻が異常状態開始時刻+異常時ログ出力期間以降であった場合、図9のフローチャートでは、ステップST1→ステップST2→ステップST21→ステップST3→ステップST4→ステップST5→ステップST7(エラーレベルがdebug、トリガーレベルがerrorのためNo)→ステップST101(エラーレベルがdebug、異常時ログ出力レベルがdebugのためYes)→ステップST106→ステップST107→ステップST10(エラーレベルdebug、通常時ログ出力レベルdebugのためYes)→ステップST110→ステップST11→ステップST12→ステップST13→ステップST14→ステップST15の順に処理が進むため、異常状態フラグはOFFに設定され、ログ出力も行われないが、ログキャッシュへの保存が行われる。
図10のチェックポイントN+2では、エラーレベル=infoは通常時のログ出力条件に合致するため、チェックポイント2と同じくログ出力が行われる。
以上述べたように実施の形態3によれば、異常事象毎に別々のログファイルにログを出力できるようにしているため、着目している異常事象に関係あるログかどうかの判別が容易になり、ソフトウエアの保守性が更に向上する効果がある。
以上述べたように実施の形態3によれば、異常事象毎に別々のログファイルにログを出力できるようにしているため、着目している異常事象に関係あるログかどうかの判別が容易になり、ソフトウエアの保守性が更に向上する効果がある。
1 アプリケーション、 2 ログ出力条件設定外面、
4 異常事象別ログファイル、 11 ログ出力条件、
12 ログ出力関数のパラメータ、 31 ログ出力内容、
41 異常事象別ログファイルの出力内容、 101 データ記憶領域、
102 ログ出力関数、 103ログキャッシュ。
4 異常事象別ログファイル、 11 ログ出力条件、
12 ログ出力関数のパラメータ、 31 ログ出力内容、
41 異常事象別ログファイルの出力内容、 101 データ記憶領域、
102 ログ出力関数、 103ログキャッシュ。
Claims (7)
- アプリケーションプログラムの実行中のチェックポイントのデータをリアルタイムにロギングするロギング装置において、上記アプリケーションプログラム中には、予め外部から設定され少なくとも通常時ログ出力レベル、異常時ログ出力レベル、及びトリガーレベルを含むログ出力条件と、各チェックポイントにおいて呼び出され少なくともエラーレベルを含むパラメータを指定できる複数のログ出力関数とが組み込まれ、通常時はログ出力関数のパラメータで指定されたエラーレベルが上記通常時ログ出力レベルに合致する場合のみログ出力され、上記トリガーレベルに合致する上記エラーレベルが発生した場合には、上記異常時ログ出力レベルに合致したエラーレベルの詳細ログが出力されるようにしたことを特徴とするロギング装置。
- 上記ログ出力条件には上記通常時ログ出力レベル、異常時ログ出力レベル、及びトリガーレベルの他に異常状態フラグ、異常時ログ出力期間、異常状態開始時刻を含んだことを特徴とする請求項1に記載のロギング装置。
- 上記通常時ログ出力レベルとは通常状態におけるログ出力条件となるエラーレベルであり、トリガーレベルとは異常状態と判定するログ出力レベルであり、異常時ログ出力レベルとはトリガーレベル検出により異常状態と判定した時に出力するログ出力レベルであることを特徴とする請求項1に記載のロギング装置。
- 上記トリガーレベルに合致するエラーレベルが発生した場合に、異常状態フラグがONになり、異常状態開始時刻に現在時刻が設定されてログ出力が実施され、異常状態フラグがONであり、かつ、上記エラーレベルが異常状態ログ出力レベルに合致すると、異常発生時の詳細ログ出力を自動的に行うようにしたことを特徴とする請求項1あるいは2に記載のロギング装置。
- 上記トリガーレベルに合致するエラーレベルが発生した場合に、所定の保存期間だけログキャッシュへログを保存し、異常時ログ出力レベルに合致したエラーレベルのログ出力がなされると共にログキャッシュから異常発生前のログを遡って出力するように構成されていることを特徴とする請求項1に記載のロギング装置。
- 上記トリガーレベルに合致するエラーレベルが発生した場合に、異常事象単位で別々のログファイルに保存することを特徴とする請求項1あるいは5に記載のロギング装置。
- データ記憶領域に記憶されたログ出力条件と、処理手順記憶領域に記憶された各チェックポイントにおいて呼び出される複数のログ出力関数とを内包し、通常時は上記ログ出力関数で指定されたログ出力レベルに合致したログのみを出力し、異常発生時には異常時ログ出力レベルに合致したエラーレベルの詳細ログが出力されるように自動的にログ出力レベルを変更するプログラムを記録したコンピュータ読取可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008047877A JP2009205488A (ja) | 2008-02-28 | 2008-02-28 | ロギング装置および記録媒体 |
US12/206,810 US20090222492A1 (en) | 2008-02-28 | 2008-09-09 | Logging Device and Recording Medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008047877A JP2009205488A (ja) | 2008-02-28 | 2008-02-28 | ロギング装置および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009205488A true JP2009205488A (ja) | 2009-09-10 |
Family
ID=41013991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008047877A Pending JP2009205488A (ja) | 2008-02-28 | 2008-02-28 | ロギング装置および記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090222492A1 (ja) |
JP (1) | JP2009205488A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012234520A (ja) * | 2011-05-06 | 2012-11-29 | Sap Ag | ビジネスプロセスのロギングのためのシステムおよび方法 |
JP5703407B1 (ja) * | 2014-03-28 | 2015-04-22 | 株式会社日立ハイテクノロジーズ | 情報処理装置、情報処理方法、情報システムおよびプログラム |
US9804908B2 (en) | 2013-10-09 | 2017-10-31 | Fujitsu Limited | Log output condition setting method and apparatus |
US9811443B2 (en) | 2015-12-11 | 2017-11-07 | International Business Machines Corporation | Dynamic trace level control |
JP2019049826A (ja) * | 2017-09-08 | 2019-03-28 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
WO2021106925A1 (ja) * | 2019-11-29 | 2021-06-03 | 株式会社メガチップス | 情報処理装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011104859T5 (de) * | 2011-02-09 | 2013-11-07 | Mitsubishi Electric Corporation | Log-Aufzeichnungsvorrichtung |
JP6593981B2 (ja) * | 2014-08-08 | 2019-10-23 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
US9965348B2 (en) * | 2014-11-12 | 2018-05-08 | International Business Machines Corporation | Optimized generation of data for software problem analysis |
US9928162B2 (en) | 2015-03-27 | 2018-03-27 | International Business Machines Corporation | Identifying severity of test execution failures by analyzing test execution logs |
US11163624B2 (en) * | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US10554510B2 (en) | 2017-02-22 | 2020-02-04 | Red Hat, Inc. | Enabling additional metrics in a monitoring system to diagnose problems |
CN107193721B (zh) * | 2017-03-30 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种生成日志的方法和装置 |
CN110162479B (zh) * | 2019-05-29 | 2023-09-29 | Oppo广东移动通信有限公司 | 异常应用检测方法、装置及终端设备 |
US11379291B2 (en) | 2020-04-07 | 2022-07-05 | Hewlett Packard Enterprise Development Lp | Application logging mechanism |
US20240143431A1 (en) * | 2022-10-26 | 2024-05-02 | Dell Products L.P. | Managing audit logs in a production environment |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119377A (en) * | 1989-06-16 | 1992-06-02 | International Business Machines Corporation | System and method for software error early detection and data capture |
US6182244B1 (en) * | 1997-09-10 | 2001-01-30 | International Business Machines Corporation | System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active |
US6880113B2 (en) * | 2001-05-03 | 2005-04-12 | International Business Machines Corporation | Conditional hardware scan dump data capture |
US7120685B2 (en) * | 2001-06-26 | 2006-10-10 | International Business Machines Corporation | Method and apparatus for dynamic configurable logging of activities in a distributed computing system |
US7069479B2 (en) * | 2002-11-07 | 2006-06-27 | International Business Machines Corporation | Method and apparatus for obtaining diagnostic data for a device attached to a computer system |
JP2004264970A (ja) * | 2003-02-28 | 2004-09-24 | Hitachi Ltd | プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法 |
CA2433750A1 (en) * | 2003-06-27 | 2004-12-27 | Ibm Canada Limited - Ibm Canada Limitee | Automatic collection of trace detail and history data |
US7606814B2 (en) * | 2004-03-11 | 2009-10-20 | Microsoft Corporation | Tracing a web request through a web server |
US7451357B2 (en) * | 2004-11-18 | 2008-11-11 | International Business Machines Corporation | Apparatus and system for adjusting trace data granularity |
US20080126828A1 (en) * | 2006-06-07 | 2008-05-29 | Janice Marie Girouard | Dynamic enablement and customization of tracing information in a data processing system |
-
2008
- 2008-02-28 JP JP2008047877A patent/JP2009205488A/ja active Pending
- 2008-09-09 US US12/206,810 patent/US20090222492A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012234520A (ja) * | 2011-05-06 | 2012-11-29 | Sap Ag | ビジネスプロセスのロギングのためのシステムおよび方法 |
US9804908B2 (en) | 2013-10-09 | 2017-10-31 | Fujitsu Limited | Log output condition setting method and apparatus |
JP5703407B1 (ja) * | 2014-03-28 | 2015-04-22 | 株式会社日立ハイテクノロジーズ | 情報処理装置、情報処理方法、情報システムおよびプログラム |
US9811443B2 (en) | 2015-12-11 | 2017-11-07 | International Business Machines Corporation | Dynamic trace level control |
US9811442B2 (en) | 2015-12-11 | 2017-11-07 | International Business Machines Corporation | Dynamic trace level control |
JP2019049826A (ja) * | 2017-09-08 | 2019-03-28 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
JP7073653B2 (ja) | 2017-09-08 | 2022-05-24 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置 |
WO2021106925A1 (ja) * | 2019-11-29 | 2021-06-03 | 株式会社メガチップス | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20090222492A1 (en) | 2009-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009205488A (ja) | ロギング装置および記録媒体 | |
JP4721111B2 (ja) | 画像処理装置、画像処理システム、画像処理プログラムおよび画像処理方法 | |
CN101739311A (zh) | 一种安全备份内存数据的方法及装置 | |
CN107590016B (zh) | 掉电重启识别方法及装置 | |
CN106682162A (zh) | 日志管理方法及装置 | |
US20130024466A1 (en) | System event logging system | |
US10261720B2 (en) | Method for optimizing the use of a non-volatile memory in a motor vehicle computer for monitoring a functional member | |
CN112181769A (zh) | 应用异常数据采集方法、装置、计算机设备及存储介质 | |
JP5208377B2 (ja) | 電動機駆動装置及び電動機駆動方法 | |
JP2011145824A (ja) | 情報処理装置、障害解析方法及び障害解析プログラム | |
US20180081762A1 (en) | Information processing device | |
CN110597688A (zh) | 监控信息采集方法及*** | |
CN106055350A (zh) | 配置文件的升级处理方法以及装置 | |
CN107025166B (zh) | 一种日志收集方法及*** | |
CN105224416B (zh) | 修复方法及相关电子装置 | |
JP2009110318A (ja) | 障害情報出力制御装置及びそれらに用いる障害情報出力制御方法並びにそのプログラム | |
JP5223995B1 (ja) | 印刷制御装置、データ管理方法およびプログラム | |
JP2008225599A (ja) | トレース情報出力装置、および、トレース情報出力方法 | |
JP2018180982A (ja) | 情報処理装置、およびログ記録方法 | |
US20140208439A1 (en) | Injustice detecting system, injustice detecting device and injustice detecting method | |
JP2010250372A (ja) | トレースデータ記録方法及び計算機システム | |
JP2011154465A (ja) | 情報処理装置の管理装置、管理方法及び管理プログラム | |
US9864668B2 (en) | Apparatus, method, and system for event data processing | |
JP2010244116A (ja) | 履歴情報管理装置、履歴情報管理方法、及びプログラム | |
JP2012194930A (ja) | 障害解析情報収集装置 |