JP2004139483A - 障害発生時のログ情報出力方法 - Google Patents

障害発生時のログ情報出力方法 Download PDF

Info

Publication number
JP2004139483A
JP2004139483A JP2002305278A JP2002305278A JP2004139483A JP 2004139483 A JP2004139483 A JP 2004139483A JP 2002305278 A JP2002305278 A JP 2002305278A JP 2002305278 A JP2002305278 A JP 2002305278A JP 2004139483 A JP2004139483 A JP 2004139483A
Authority
JP
Japan
Prior art keywords
log
log information
failure
output
application program
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
Application number
JP2002305278A
Other languages
English (en)
Inventor
Yasuyuki Kuwabara
桑原 康幸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002305278A priority Critical patent/JP2004139483A/ja
Publication of JP2004139483A publication Critical patent/JP2004139483A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ラップアラウンドの頻度を少なくするログ出力方法を提供する。
【解決手段】ログ出力プログラム101はアプリケーションプログラムプロセス1001、1002からログ情報を受け取り、アプリケーションプログラムプロセス1001、1002の起動時に決められたログレベル以下の内容のみを通常出力ログファイル102に書き込む。また、障害発生時に詳細な情報が残るようにすべてのログ情報を障害発生時用ログバッファ1014に記録し、障害が発生したプロセスのログ情報のみ障害発生時ログファイル103に出力する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、指定されたログレベルでログを出力するアプリケーションにおいて、通常のログレベルに加え、内部で詳細なログ情報を持たせるログ出力方法に関する。
【0002】
【従来の技術】
アプリケーションプログラムは実行履歴を残すためにログ機能を備えている。このログ出力にはアプリケーションプログラムにより出力形態は異なるが、業務運用時にログの出力レベル・ログサイズを予め決め、必要な情報のみ出力するような場合もある。例えば、障害発生時のみ出力、他のアプリケーションプログラムとのインタフェース情報、内部関数レベルでの引数の情報などとレベルを別ける。
【0003】
障害発生時のみ出力を低レベルとし、その低レベルでのログ出力が指定された場合、必要な情報のみを出力するので、ログサイズを少なく抑えることが可能となる。
【0004】
また、内部関数レベルでの引数の情報を高レベルとし、高レベルでのログ出力が指定された場合は、出力されるログ情報が多くなり、ログサイズ分に達すると、以前の情報から上書きしていく、ラップアラウンド方式となっている。
【0005】
また、アプリケーションプログラムで1つのログファイルとなっており、その1つのログファイルに複数のプロセスがログ情報をシーケンシャルに書き込んでいる。
【0006】
これに関連するものとしてログ情報にレベルを設定することが特許文献1等に開示されている。
【特許文献1】特開2002−207612
【発明が解決しようとする課題】
ところで、上記従来技術によれば、ログレベル・ログサイズを予め決めておくことはできるが、障害発生時のログの解析のことは記載されておらず、低レベルで実行された場合には、障害が発生するとその時の障害情報(例えばエラー番号、障害が発生したモジュール名など)しかなく、どんな操作を行ったために障害が発生したのか、システムがどういう状態だったのかと言った解析を行うことができない。また、逆に高レベルで出力した場合は、出力される情報が多くなり、ログファイルがすぐに一杯となりラップアラウンドされ、以前の情報が上書きされログ情報が欠落することで原因究明が困難となる。
【0007】
また、複数のプロセスのログ情報が1つのファイルに混在しており、障害が発生したプロセスのログ情報のみを取得することが困難である。
【0008】
本発明の目的は、上述の従来型における問題点に鑑み、障害発生時の原因究明を容易に行うためのログ出力方法を提供することである。また、詳細なログ出力においてはラップアラウンドの原因となるため、アプリケーションプログラムの稼動負荷によりログの出力サイズを動的に変更するログ出力方法を提供する。
【0009】
【課題を解決するための手段】
上記目的を達成するために、請求項1に係る発明は、出力するログのレベルを指定できるアプリケーションプログラムにおいて、通常は指定されたログレベルで出力する方法と、内部情報としてログレベルに関係なく詳細なログ情報も保持しておくための内部バッファを有し、アプリケーションプログラムから受け取ったログ情報から障害時のログ情報であるかを判断し、障害時のログ情報であった場合には、保持している内部情報から障害が発生したアプリケーションプログラムの該当プロセスのログ情報を障害発生時用ログファイルとして出力する手段を備えたことを特徴とする。
請求項2に係る発明は、アプリケーションプログラムの負荷を監視しておき、そのCPU使用率の状態と内部バッファのサイズを管理するテーブルを有し、そのテーブルに基づきある一定基準より負荷が軽い場合は障害発生時の内部ログ領域は減少させ、負荷が重い場合は障害発生時の内部ログ領域は増加させる手段を備えたこと特徴とする。
【0010】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。
【0011】
図1に本発明を適用したログ出力システムの全体構成を示す。図4にバッファサイズ管理テーブルを示す。
【0012】
アプリケーションプログラムプロセス1001、1002はログレベル、ログに書き込むメッセージ、メッセージIDを付加したログ情報およびプロセスIDを、ログ出力プログラム101に渡す。ログ出力プログラム101は、通常ログ出力処理部1011、全ログ出力処理部1012、プロセス監視処理部1013を有する。
【0013】
通常ログ出力処理部1011は、アプリケーションプログラムプロセス1001、1002が起動時に指定したログレベル以下のログ情報のみをテキスト形式の通常出力ログファイル102に出力する処理である。通常出力ログファイル102は常にファイル出力されている。
【0014】
全ログ出力処理部1012は、障害発生時に障害が発生したプロセスのログ情報を出力するために、アプリケーションプログラムプロセス1001、1002から受け取ったログ情報をログレベルに関係なく、障害発生時用ログバッファ1014としてすべてのログ情報を内部で保持する処理である。障害発生時には、障害発生時用ログバッファ1014の内容から、障害が発生したプロセスのログ情報のみを抽出し、障害発生時ログファイル103としてファイルに出力することにより、障害が発生したプロセスのすべてのログ情報が残され、解析を容易に行うことができる。尚、ここで障害の発生とはアプリケーション又はアプリケーションのプロセスによるCPU占有率や、メモリ占有率を監視し、一定時間以上占有している場合、あるいは特定のログ情報を監視し、このログの情報が所定の値を超えたり、時間的な変化が大きい場合などである。
【0015】
プロセス監視処理部1013は、内部で保持するログのバッファサイズを動的に変更するためにアプリケーションプログラムプロセス1001、1002の負荷を監視する。アプリケーションプログラムプロセス1001、1002に負荷がかかると言う事は、同時に複数のプロセスが実行されていると言う事でもあるため、ログ情報が膨大となり、障害発生時用ログバッファもすぐにラップアラウンドしてしまう。ラップアラウンドすると、障害発生時に過去の情報が上書きされてしまい、必要な情報が欠落してしまうと実際のログ調査時に困難となる。ラップアラウンドを少なくするために、プロセス監視処理部1013は、定期的にアプリケーションプログラムプロセス1001、1002の状態を監視し、アプリケーションプログラムプロセス1001、1002のCPU使用率に応じて、その時の使用率がいくつであるかをバッファサイズ管理テーブル400の「プロセスの状況」に記憶する。プロセスが複数実行されている場合は、一番高い値を記憶しておく。ある時点のアプリケーションプログラムプロセス1001のCPU使用率が25%、アプリケーションプログラムプロセス1002のCPU使用率が40%であれば、「50%未満」の個所が「1」になり、次回監視した時にそれぞれ30%、55%になっていれば、「50%以上75%未満」の個所が「1」となる。
【0016】
処理手順を図2および図3を用いて説明する。
【0017】
ステップ200で通常ログ出力処理部1011はアプリケーションプログラムプロセス1001、1002からログレベル、メッセージID、メッセージおよびプロセスIDを受け取る。受け取ったログの情報がアプリケーションプログラムプロセス1001、1002が起動時に指定されたログレベル以下の情報であれば(ステップ201:Y)、ステップ202で通常ログ出力処理部1011が通常出力ログファイル102にログの情報を出力する。
【0018】
ステップ203で全ログ出力処理部1012はバッファサイズ管理テーブル400を参照し、「プロセスの状況」と「現在のサイズ」を比較し、同じ個所が「1」であれば(ステップ203:N)、バッファサイズの変更は行わない。違う個所が「1」になっていれば(ステップ203:Y)、ステップ204において全ログ出力処理部1012が障害発生時用ログバッファ1014のサイズの変更を行い、バッファサイズ管理テーブル400の「現在のサイズ」の状態を更新する。「現在のサイズ」は障害発生時用ログバッファ1014が現在どのサイズでバッファを確保しているかを示している。
【0019】
ステップ205で、全ログ出力処理部1012において障害発生時用ログバッファ1014にログレベルに関係なくアプリケーションプログラムプロセス1001、1002から受け取ったすべてのログ情報を記録する。図5に内部バッファテーブルを示す。ステップ205ではログ出力プログラム101が受け取ったすべてのメッセージIDとメッセージのログ情報およびプロセスIDを内部バッファテーブル500に追加していくことになる。この際、アプリケーションプログラムプロセス1001、1002が同時に実行されていると、早いものから順に書き込まれていく。
【0020】
ステップ206で、全ログ出力処理部1012においてメッセージIDから異常メッセージのIDであるかどうかを判断し、異常のメッセージIDであった場合は(ステップ206:Y)、ステップ207でその障害発生時用ログバッファ1014から障害が発生したプロセスのログ情報のみを抽出し、障害発生時ログファイル103としてファイル出力する。異常のメッセージIDでなければ(ステップ206:N)ファイル出力はされないため、ディスク容量を圧迫することもない。
【0021】
ステップ207の処理手順を図3を用いて説明する。
【0022】
異常時のメッセージを受け取ると、ステップ300で障害発生時用ログバッファの先頭から、障害が発生したプロセスのログ情報の検索を開始する。内部バッファテーブルの「プロセスID」を参照し、ステップ301で障害が発生したプロセスのログ情報であるかを判断し、該当すれば(ステップ301:Y)別領域にその情報を退避する。該当しなければ(ステップ301:N)、ステップ305で次のバッファのログ情報を検索する。
【0023】
ステップ303で、バッファの最後まで検索済みかを判定し、最後まで検索したら(ステップ303:Y)、ステップ302で退避しておいた障害が発生したプロセスのみのログ情報を全ログ出力処理部1011が障害発生時ログファイル103としてテキスト形式のファイルに出力する。
【0024】
図6に出力されたログファイルの例を示す。ステップ202で出力されたファイルが、通常出力ログファイル600の内容となり、ステップ304で障害が発生したプロセスのログ情報のみをファイルに出力したものが障害発生時ログファイル601の内容となる。通常出力ログファイル600には、複数のプロセスが実行されると障害が発生したプロセスのログだけではなく、すべてのプロセスのログが混在して出力されるが、障害発生時ログファイル601には、障害が発生したプロセスのログ情報しか出力されない。
【0025】
障害発生時ログファイル601にあるように、障害が発生したプロセスのログ情報のみ、関数の呼び出しおよび関数の引数も記録された詳細なログ情報を解析することで、ログの解析を容易に行うことが可能となる。
【0026】
上記の例では、ファイルへの出力をテキスト形式としたが、バイナリ形式として保存し、アプリケーションプログラムのログ編集ツールなどを用いて解析しても良い。
【0027】
【発明の効果】
本発明のログ出力方法によれば、低いログレベルで実行されていても障害発生時は障害が発生したプロセスのみの詳細なログ情報を出力でき、障害の解析を容易に行うことが可能となる。
【0028】
また、本発明のログサイズ動的変更方法によれば、アプリケーションの負荷状況に応じて内部で保持するバッファのサイズを動的に変更することにより、ラップアラウンドの頻度が少なくなり、より多くの情報が残ることで必要なログ情報の欠落を防止することが可能となる。
【図面の簡単な説明】
【図1】本発明に係るシステム構成を示す図である。
【図2】ログ出力処理のフローチャートを示した図である。
【図3】障害発生時の該当プロセスのログ情報を抽出し出力するフローチャートを示した図である。
【図4】バッファサイズ管理テーブルの一例を示した図である。
【図5】内部バッファテーブルの一例を示した図である。
【図6】通常出力ログファイルと障害発生時ログファイルの出力例を示した図である。
【符号の説明】
1001 アプリケーションプログラムプロセス
1002 アプリケーションプログラムプロセス
101 ログ出力プログラム
1011 通常ログ出力処理部
1012 全ログ出力処理部
1013 プロセス監視処理部
1014 障害発生時用ログバッファ
102 通常出力ログファイル
103 障害発生時ログファイル

Claims (2)

  1. アプリケーションプログラムの実行により生成されたログ情報を出力する方法であって、
    前記アプリケーションプログラムの実行により生成されたログ情報を記憶装置に記憶し、指定されたレベルに従ってログ情報を出力し、アプリケーションプログラムから受け取ったログ情報から障害時のログ情報であると判断した場合に、前記記憶装置に保持されたログ情報から障害が発生したアプリケーションプログラムの該当プロセスのログ情報を出力することを特徴とするログ情報の出力方法。
  2. 請求項1に記載のログ情報の出力方法において、
    アプリケーションプログラムの負荷を監視しておき、そのCPU使用率の状態と内部バッファのサイズを管理するテーブルを有し、そのテーブルに基づきある一定基準より負荷が小さい場合はログ領域を減少させ、負荷が大きい場合はログ領域を増加させることを特徴とするログ情報の出力方法。
JP2002305278A 2002-10-21 2002-10-21 障害発生時のログ情報出力方法 Pending JP2004139483A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002305278A JP2004139483A (ja) 2002-10-21 2002-10-21 障害発生時のログ情報出力方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002305278A JP2004139483A (ja) 2002-10-21 2002-10-21 障害発生時のログ情報出力方法

Publications (1)

Publication Number Publication Date
JP2004139483A true JP2004139483A (ja) 2004-05-13

Family

ID=32452437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002305278A Pending JP2004139483A (ja) 2002-10-21 2002-10-21 障害発生時のログ情報出力方法

Country Status (1)

Country Link
JP (1) JP2004139483A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009464A (ja) * 2007-06-29 2009-01-15 Kyocera Mita Corp ログ蓄積装置およびログ蓄積プログラム
JP2009169474A (ja) * 2008-01-10 2009-07-30 Mitsubishi Electric Corp システムログ管理支援装置およびシステムログ管理支援方法
JP2011113354A (ja) * 2009-11-27 2011-06-09 Nec Corp ログ出力装置、ログ出力方法、ログ出力用プログラム
JP2013539111A (ja) * 2010-08-16 2013-10-17 シマンテック コーポレーション キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
JP5496377B1 (ja) * 2013-02-04 2014-05-21 三菱電機株式会社 ログ出力装置及びログ出力プログラム
US8762601B2 (en) 2005-11-14 2014-06-24 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for buffering write data in response to motion

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762601B2 (en) 2005-11-14 2014-06-24 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for buffering write data in response to motion
JP2009009464A (ja) * 2007-06-29 2009-01-15 Kyocera Mita Corp ログ蓄積装置およびログ蓄積プログラム
JP2009169474A (ja) * 2008-01-10 2009-07-30 Mitsubishi Electric Corp システムログ管理支援装置およびシステムログ管理支援方法
JP2011113354A (ja) * 2009-11-27 2011-06-09 Nec Corp ログ出力装置、ログ出力方法、ログ出力用プログラム
JP2013539111A (ja) * 2010-08-16 2013-10-17 シマンテック コーポレーション キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
JP5496377B1 (ja) * 2013-02-04 2014-05-21 三菱電機株式会社 ログ出力装置及びログ出力プログラム
JP2014149783A (ja) * 2013-02-04 2014-08-21 Mitsubishi Electric Corp ログ出力装置及びログ出力プログラム

Similar Documents

Publication Publication Date Title
CN100432949C (zh) 在计算机上当软件崩溃时保存用户数据的方法及装置
US7698602B2 (en) Systems, methods and computer products for trace capability per work unit
US20040003319A1 (en) Logically partitioned computer system and method for controlling configuration of the same
JP2009205488A (ja) ロギング装置および記録媒体
US7752496B2 (en) Method, apparatus, and computer product for managing log data
CN111858077A (zh) 一种存储***中io请求日志的记录方法、装置及设备
US9824229B2 (en) Controller with enhanced reliability
CN114090297A (zh) 一种业务消息的处理方法及相关装置
JP5545761B2 (ja) 障害解析支援システム、障害解析支援方法、および障害解析支援プログラム
JP2004139483A (ja) 障害発生時のログ情報出力方法
US20100088541A1 (en) Failure information monitoring apparatus and failure information monitoring method
WO2005067403A2 (en) Integrated alarm manager shared by multiple monitoring processes on an operation and maintenance processor
JP5768503B2 (ja) 情報処理装置、ログ記憶制御プログラムおよびログ記憶制御方法
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
JP2009122815A (ja) ログ記録装置
JP2004310514A (ja) 情報処理端末および履歴情報保存方法
CN114253810A (zh) 浏览器内核异常监控方法、装置、存储介质及电子设备
JP4562641B2 (ja) コンピュータシステム、動作状態判定プログラムおよび動作状態判定方法
US6795879B2 (en) Apparatus and method for wait state analysis in a digital signal processing system
CN111078450B (zh) 嵌入式***中文件数据未同步的检测方法
JPH0675957A (ja) 編集中障害の復旧機構
JP2005267036A (ja) トレース出力制御方法およびトレースシステム
JP2014164464A (ja) ログ出力装置
JPH10269111A (ja) プログラム障害発生時の情報管理方法
US20190277920A1 (en) Voltage drop detection system