(57)【要約】【課題】障害が発生した場合であっても効率良くログ情報を保存できる情報処理装置及び情報処理方法を提供する。【解決手段】実施形態によれば、情報処理装置は、第１記録手段と、決定手段と、前記第２記録手段とを有する。第１記録手段は、情報処理装置の動作履歴を示すログを蓄積する。決定手段は、障害が発生した場合に、第１記録手段に記録したログのうち保存すべきログの件数を前記障害の内容に応じて決定する。第２記録手段は、決定手段によって決定された件数分のログを第１記録手段から読み出し、読み出したログを保存する。【選択図】図１
2014052827.tif 000002
【特許請求の範囲】
【請求項１】
障害発生時に動作履歴を記録する情報処理装置において、
当該情報処理装置の動作履歴を示すログを蓄積する第１記録手段と、
障害が発生した場合に、前記第１記録手段に記録したログのうち保存すべきログの件数を前記障害の内容に応じて決定する決定手段と、
前記決定手段によって決定された件数分のログを前記第１記録手段から読み出し、読み出したログを保存する第２記録手段と、
を有する情報処理装置。
【請求項２】
前記第１記録手段は、揮発性のメモリであり、
前記第２記録手段は、不揮発性のメモリである、
前記請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、前記障害の種別、重要度、或いは発生回数に基づいて前記件数を決定する、
前記請求項１又は２の何れか１項に記載の情報処理装置。
【請求項４】
前記第１記録手段は、所定量のログをサイクリックに記録する、
前記請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記第２記録手段は、前記障害が発生した時点から遡って前記件数分のログを前記第１記録手段から読み出して記録する、
前記請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
さらに、前記障害が発生した場合に、前記障害を示す障害ログを保存する第３記録手段を有する、
前記請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
障害発生時に動作履歴を記録する情報処理方法において、
第１記録手段に情報処理装置の動作履歴を示すログを記録し、
障害が発生した場合に、前記第１記録手段に記録したログのうち保存すべきログの件数を前記障害の内容に応じて決定し、
前記決定した件数分のログを前記第１記録手段から読み出し、読み出したログを前記第１記録手段とは異なる第２記録手段に保存する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置には、障害が発生した場合などに、動作状況を示すログを保存する機能を有するものがある。障害発生時の動作状況を詳細に検証するために多くの詳細なログをメモリに保存しようとすると、メモリにログとして保存するデータ量が大量になる。たとえば、障害が発生する度に多数の詳細ログをメモリに保存する情報処理装置では、障害が頻繁に発生した場合には、詳細ログによってメモリの記憶容量が圧迫されてしまう。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２６９１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するため、障害が発生した場合に効率良くログ情報を保存できる情報処理装置及び情報処理方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、情報処理装置は、第１記録手段と、決定手段と、前記第２記録手段とを有する。第１記録手段は、情報処理装置の動作履歴を示すログを蓄積する。決定手段は、障害が発生した場合に、第１記録手段に記録したログのうち保存すべきログの件数を前記障害の内容に応じて決定する。第２記録手段は、決定手段によって決定された件数分のログを第１記録手段から読み出し、読み出したログを保存する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係る情報処理装置の構成例を概略的に示す図である。
【図２】本実施形態に係る情報処理装置のＲＡＭに時系列で記録される詳細ログの例を示す図である。
【図３】本実施形態に係る情報処理装置のＲＡＭに記録される障害発生カウンタテーブルの例を示す図である。
【図４】本実施形態に係る情報処理装置の不揮発性メモリに時系列で記録される通常ログの例を示す図である。
【図５】本実施形態に係る情報処理装置の不揮発性メモリに時系列で記録される障害ログの例を示す図である。
【図６】本実施形態に係る情報処理装置の不揮発性メモリに記録される障害情報テーブルの例を示す図である。
【図７】本実施形態に係る情報処理装置の不揮発性メモリに記録される仮出力件数テーブルの例を示す図である。
【図８】本実施形態に係る情報処理装置の不揮発性メモリに記録される出力係数テーブルの例を示す図である。
【図９】本実施形態に係る情報処理装置の通常時の動作例を示す構成図である。
【図１０】本実施形態に係る情報処理装置の障害発生時の動作例を示す構成図である。
【図１１】本実施形態に係る情報処理装置の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、本実施形態について、図面を参照して説明する。  
図１は、本実施形態に係る情報処理装置１０の構成例を概略的に示す図である。  
本実施形態に係る情報処理装置１０としては、たとえば、パーソナルコンピュータ（ＰＣ）、サーバ装置、あるいは、携帯端末装置などの機器が想定される。  
図１が示すように、情報処理装置１０は、制御部１１、ＲＡＭ１２、ＲＯＭ１３、不揮発性メモリ１４、及び、通信インターフェース（Ｉ／Ｆ）１５などを備える。
【０００８】
制御部１１は、情報処理装置１０全体の動作を制御する。制御部１１は、ＣＰＵなどで構成される。また、制御部１１は、内部メモリおよび各種のインターフェースなどを備えても良い。制御部１１は、内部メモリ、ＲＯＭ１３あるいは不揮発性メモリ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。たとえば、制御部１１は、プログラムを実行することにより、通信インターフェース１５を介して入力されるデータなどのデータを処理するデータ処理機能を有する。なお、制御部１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、制御部１１は、ハードウエア回路により実行される機能を制御する。
【０００９】
ＲＡＭ１２は、揮発性のメモリである。ＲＡＭ１２は、制御部１１の処理中のデータなどを一時的に格納する。ＲＡＭ１２は、制御部１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１２は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。たとえば、制御部１１は、不揮発性メモリ１４に記録されているログ出力プログラムをＲＡＭ１２上に展開し、当該ログ出力プログラムを実行する。
【００１０】
また、制御部１１は、ＲＡＭ１２内に、ログ出力プログラムの実行結果として詳細ログ及び障害発生カウンタなどを格納する。たとえば、ＲＡＭ１２は、複数の詳細ログを記録する記録領域１２ａ、および、障害発生カウンタテーブルを記録する記録領域１２ｂを有する。ＲＡＭ１２に記憶される詳細ログ、および、障害発生カウンタテーブルについては、後述する。
【００１１】
ＲＯＭ１３は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ２２に記憶される制御プログラム及び制御データは、予め情報処理装置１０の仕様に応じて組み込まれる。ＲＯＭ１３は、たとえば、情報処理装置１０の回路基板を制御するプログラム（ＢＩＯＳ）などを格納している。
【００１２】
不揮発性メモリ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。不揮発性メモリ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ又はフラッシュメモリなどにより構成される。不揮発性メモリ１４は、情報処理装置１０の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。不揮発性メモリ１４は、たとえば、ログ出力プログラムなどを格納する。
【００１３】
また、不揮発性メモリ１４は、詳細ログを記録する記録領域１４ａ、通常ログを記録する記録領域１４ｂ、障害ログを記録する記録領域１４ｃ、障害情報テーブルを格納する記録領域１４ｄ、仮出力件数テーブルを格納する記録領域１４ｅ、および、出力係数テーブルを格納する記録領域１４ｆなどを有する。これらの情報およびテーブルについては、後述する。
【００１４】
通信インターフェース１５は、外部のシステムとのデータ通信を行うためのインターフェースである。  
なお、情報処理装置１０は、さらに、表示部、操作部及び外部インターフェースなどを備えても良く、上述した構成以外の構成要素を適宜追加しても良い。
【００１５】
次に、ＲＡＭ１２の記録領域１２ａに記憶される詳細ログについて説明する。  
図２は、記録領域１２ａに時系列で記録される詳細ログの例を示す図である。  
詳細ログは、情報処理装置１０の詳細な動作内容と当該動作が生じた時刻とを対応付けたデータである。図２に示す例では、関数の呼び出し、関数の引数、関数の終了情報（たとえば、正常終了又は異常終了など）、及び、動作モードの遷移状況などを示すデータが時刻情報に対応づけて詳細ログとして記憶領域１２ａに記憶される。なお、詳細ログとしては、システムコール呼び出し及びハードウェアアクセスなどのデータであっても良く、特定のデータに限定されるものではない。詳細ログは、障害発生時において、障害が発生するまでの動作経緯を詳細に解析するために利用される。
【００１６】
記録領域１２ａは、複数の詳細ログをサイクリックに時系列で記憶する。サイクリックとは、記録領域１２ａにデータを記録していき、記録領域１２ａがいっぱいになると記録領域１２ａの最も古いデータに新しいデータを上書きしてデータを記録していく記録方式である。すなわち、制御部１１は、詳細ログを記録領域１２ａに時系列の順番に記憶していき、記録領域１２ａがいっぱいになると、最も古い詳細ログ（時系列で最も古い詳細ログ）に上書きして記憶する。
【００１７】
たとえば、記録領域１２ａに記録される詳細ログの個数は、予め決められている。記録領域１２ａに記録される詳細ログの個数は、障害発生時において不揮発性メモリ１４に記録される詳細ログの最大個数よりも大きい。記録領域１２ａに記録される詳細ログの個数は、たとえば、２００個などであるが、上記の条件を満たせば特定の個数に限定されるものではない。
【００１８】
次に。ＲＡＭ１２の記録領域１２ｂに記憶される障害発生カウンタテーブルについて説明する。  
図３は、ＲＡＭ１２の記録領域１２ｂに記録される障害発生カウンタテーブルの例を示す図である。  
図３に示すように、記憶領域１２ｂには、発生した障害の内容と各種の障害が発生した回数をカウントする発生回数カウンタとを対応付けた障害発生カウンタテーブルを記憶する。たとえば、障害が発生した場合、制御部１１は、発生した障害の内容を特定する。発生した障害の内容を特定すると、制御部１１は、障害発生カウンタテーブルにおける当該障害に対応する発生回数カウンタをカウントアップする。
【００１９】
図３が示す例において、たとえば、障害発生カウンタテーブル内の回線切断エラーに対応する発生回数カウンタが「５」である。図３に示す障害発生カウンタテーブルでは、回線切断エラーが５回生じたことを示している。たとえば、障害発生カウンタテーブルが図３に示す状態で障害として回線切断エラーが生じたと特定した場合、制御部１１は、障害発生カウンタテーブルにおける回線切断エラーに対応する発生回数カウンタを「５」から「６」に書き換える。
【００２０】
また、障害発生カウンタテーブルは、ＲＡＭ１２に格納されているので、情報処理装置１０が起動してからシャットダウンされるまでに生じた障害の回数をカウントする。すなわち、障害発生カウンタテーブルをＲＡＭ１２の記憶領域１２ｂに記憶することにより、情報処理装置１０がリセット又はシャットダウンされるごとに、障害発生カウンタテーブルは、初期状態（即ち、全ての障害に対応する発生回数カウンタが初期化（「０」）の状態）に戻るようになっている。
【００２１】
なお、障害発生カウンタテーブルは、不揮発性メモリ１４に記憶するようにしても良い。障害発生カウンタテーブルを不揮発性メモリ１４に記憶することにより、情報処理装置１０がリセット又はシャットダウンされた場合にも、障害発生カウンタテーブルにおいてカウントアップした値を初期状態に戻らないようにすることもできる。この場合も、障害発生カウンタテーブルは、制御部１１の制御により任意のタイミングで初期化することが可能である。
【００２２】
次に、不揮発性メモリ１４の記録領域１４ａに記憶する詳細ログについて説明する。  
不揮発性メモリ１４の記録領域１４ａは、障害発生時に制御部１１が決定する記録件数の詳細ログを障害発生時から時系列で記録する。即ち、障害が発生すると、制御部１１は、障害の内容に応じて決定する記録件数分の詳細ログを障害発生時から遡って選出する。記録領域１４ａは、制御部１１が障害の内容に応じて決定した件数分の詳細ログを記録する。これにより、記録領域１４ａは、障害が発生する度に、障害発生時から遡って障害の内容に応じた件数分の詳細ログが追記される。なお、詳細ログの記録件数の決定方法及び記録領域１４ａへの詳細ログの記録手順は後述する。また、記録領域１４ａに記録される詳細ログは、ＲＡＭ１２の記録領域１２ａに記憶されている詳細ログであり、上述したような図２に示すような構成を有するものとする。
【００２３】
次に、不揮発性メモリ１４の記録領域１４ｂに記憶する通常ログについて説明する。  
図４は、記録領域１４ｂに時系列で記録される通常ログの例を示す図である。  
通常ログは、情報処理装置１０の稼働状況と当該稼働状況が生じた時刻とを対応付けたデータである。通常ログは、詳細ログよりも大まかに情報処理装置の稼働状況を示すログ情報である。たとえば、通常ログは、情報処理装置１０の稼働時間などを記録するためなどに利用される。図４に示す例では、通常ログは、情報処理装置１０の電源状態（たとえば、スイッチオン又はシャットダウンなど）及び稼動状況（たとえば、稼動開始又は稼動終了など）などを示すデータから構成される。記録領域１４ｂには、通常ログが時系列を記録される。通常ログの構成は、特定の構成に限定されるものではない。
【００２４】
次に、不揮発性メモリ１４の記録領域１４ｃに記憶する障害ログについて説明する。  
図５は、記録領域１４ｃに時系列で記録される障害ログの例を示す図である。  
障害ログは、情報処理装置１０に発生した障害の内容と当該障害が発生した時刻とを対応付けたデータである。たとえば、障害ログは、発生した障害の内容を特定するために利用される。図５に示す例において、障害ログは、「回線接続失敗エラー」、「ファイル書き込み時エラー」、及び、「回線切断エラー」などの各障害が発生した時刻を示すデータで構成される。すなわち、障害が発生する毎に、制御部１１は、発生した障害の内容を示す障害ログが生成し、記憶領域１４ｃには、制御部１１が生成する障害ログが追記される。この結果として、記憶領域１４ｃは、時系列で障害ログを記憶する。なお、障害ログの構成は、特定の構成に限定されるものではない。
【００２５】
次に、不揮発性メモリ１４の記憶領域１４ｄに記憶される障害情報テーブルについて説明する。  
図６は、記録領域１４ｄに格納される障害情報テーブルの例を示す図である。  
障害情報テーブルは、生じ得る障害の障害名と障害種別と重要度とを対応付けた情報であり、不揮発性メモリ１４の記憶領域１４ｄに記憶される。  
障害名は、障害の内容を示す情報である。障害名は、記録領域１４ｃに記録されている障害ログと対応している。障害種別は、障害のカテゴリを示す情報である。たとえば、「回線切断エラー」及び「回線接続失敗エラー」は、ともに「通信エラー」にカテゴライズされている。また、「ファイルオープンエラー」及び「ファイル書き込み時エラー」は、ともに「ＩＯエラー」にカテゴライズされている。重要度は、障害の重要性を示す情報である。重要度が高いほど、重大な障害（即ち、障害の解析に多くの詳細ログを必要とする障害）である。たとえば、図６に示す例では、「回線切断エラー」の重要度は、「高」であるので、同一種別の中の他の障害と比べて重大な障害であるとして設定されている。また、図６に示す例において、「ファイルオープンエラー」の重要度は、「低」であるので、同一種別の中の他の障害と比べそれほど重大ではない障害として設定されている。
【００２６】
障害情報テーブルは、制御部１１が発生した障害について、種別および重要度を判定するために使用される。たとえば、障害として「回線接続失敗エラー」が生じた場合、制御部１１は、障害情報テーブルを参照することにより、「回線接続失敗エラー」が属している種別とその重要度とを取得する。図６に示す障害情報テーブルを参照するとすれば、制御部１１は、「回線接続失敗エラー」の障害種別を「通信エラー」と判断し、その重要度を「中」と判断する。障害情報テーブルを参照して取得した障害種別及び重要度の情報は、制御部１１が詳細ログの記録件数を決定するために利用される。
【００２７】
なお、障害情報テーブルは、予め不揮発性メモリ１４の記録領域１４ｄに格納される情報である。障害情報テーブルにおいて各障害に対する障害種別及び重要度は、情報処理装置１０の構成及び情報処理装置１０を運用しているシステムなどによって適宜設定されるものであり、特定の構成に限定されるものではない。
【００２８】
次に、不揮発性メモリ１４の記録領域１４ｅに記憶される仮出力件数テーブルについて説明する。  
図７は、記録領域１４ｅに格納されている仮出力件数テーブルの例を示す図である。  
仮出力件数テーブルは、障害種別及び重要度に対応する仮出力件数を示す情報であり、不揮発性メモリ１４の記憶領域１４ｅに記憶される。障害種別及び重要度は、障害情報テーブルに格納される障害種別及び重要度に対応する情報であり、前述した通りの情報である。仮出力件数は、障害発生時に、制御部１１が不揮発性メモリ１４に記憶する詳細ログの記録件数を決定するために利用される。制御部１１は、仮出力件数テーブルで特定される仮出力件数を用いて後述する計算方法による演算処理により不揮発性メモリ１４への詳細ログの記録件数を決定する。
【００２９】
すなわち、仮出力件数テーブルは、各種の障害に対して、詳細ログの記録件数の基準となる仮出力件数を示すものである。たとえば、障害の重要度が高いほど、障害を解析するために必要な詳細ログが多くなるものと考えると、仮出力件数は、障害の重要度が大きいほど、大きな値となるように設定される。たとえば、図７に示す例では、「通信エラー」の種別において、重要度が「高」である障害に対応する仮出力件数は、「１００」であり、重量度が「低」である障害に対応する仮出力件数は、「６０」である。また、仮出力件数テーブルは、障害種別によっても、仮出力件数が異なるように設定して良い。これは、障害種別によって障害を解析するのに必要な詳細ログの件数が異なることが想定されるからである。たとえば、図７に示す例では、重要度が「高」の欄において、種別が「通信エラー」である障害に対応する仮出力件数は、「１００」であり、種別が「引数エラー」である障害に対応する仮出力件数は、「５」である。
【００３０】
仮出力件数テーブルは、障害発生時に、制御部１１が発生した障害の仮出力件数を取得するために利用される。たとえば、発生した障害の障害種別が「ＩＯエラー」でその重要度が「中」である場合、制御部１１は、図７に示すような仮出力件数テーブルを参照することにより、発生した障害に対応する仮出力件数が「５０」であると判断する。
【００３１】
不揮発性メモリ１４の記録領域１４ｅには、予め設定された仮出力件数テーブルが記憶される。仮出力件数テーブルにおける各障害種別及び重要度に対応する仮出力件数は、情報処理装置１０の構成及び情報処理装置１０を含むシステムの運用形態などによって適宜設定されるものであり、特定の構成に限定されるものではない。
【００３２】
次に、不揮発性メモリ１４の記憶領域１４ｆに記憶される出力係数テーブルについて説明する。  
図８は、記録領域１４ｆに格納されている出力係数テーブルの例を示す図である。  
出力係数テーブルは、障害の発生回数と発生回数に対応した出力係数とを対応付けた情報であり、不揮発性メモリ１４の記憶領域１４ｆに記憶される。
【００３３】
発生回数は、これまでに発生した同一の障害の発生回数に対する閾値である。出力係数は、発生した障害に応じた詳細ログの記録件数を決定するために、仮出力件数に乗算される値である。出力係数は、これまでに発生した同一の障害の発生回数に応じて変化するように設定できる。たとえば、出力係数テーブルにおいて、発生回数が多いほど出力計数を小さな値としても良い。これは、すでに同一の障害が発生している場合、以前に生じた同一の障害の詳細ログが既に不揮発性メモリ１４の記録領域１４ａに記録されているため、改めて多数の詳細ログを記録領域１４ａに記録する必要性が少ないという考えに基づくものである。たとえば、図８に示す例では、発生回数「５件以上」に対応する出力係数は「０．５」であり、発生回数「２件未満」に対応する出力係数は「２」である。ただし、出力係数テーブルにおける出力係数の設定方法は、上述したものに限定されるものではなく、情報処理装置１０の構成あるいは情報処理装置を含むシステムの運用形態などに応じて適宜設定されるものである。
【００３４】
出力係数テーブルは、障害発生時において、制御部１１が出力係数を決定するために利用される。たとえば、図３に示すように、「回線接続失敗エラー」がこれまでに２回生じている場合において、再度「回線接続失敗エラー」が生じると、制御部１１は、これまでに回線接続エラーが３回生じていると認識する。これまでの「回線接続失敗エラー」の回数が３回であると認識すると、制御部１１は、図８に示す出力係数テーブルを参照すれば、発生回数「２〜４件」に対応する出力係数が「１」であると決定する。
【００３５】
不揮発性メモリ１４の記録領域１４ｆには、予め設定された出力係数テーブルが記憶される。発生回数の閾値及び発生回数に対応する出力係数は、情報処理装置１０の構成及び情報処理装置１０を含むシステムの運用形態などによって適宜設定ものであり、特定の構成に限定されるものではない。
【００３６】
次に、情報処理装置１０がログを不揮発性メモリ１４に保存する動作（ログの保存処理）について概略的に説明する。  
まず、通常時（障害未発生時）におけるログの保存処理を説明する。  
図９は、情報処理装置１０における通常時（障害未発生時）のログの保存処理を説明するための図である。
【００３７】
情報処理装置１０において、制御部１１は、プロセッサがＲＡＭ１２上に展開したログ出力プログラムを実行することにより、ログの保存処理を実行する。  
通常時において、制御部１１は、情報処理装置１０の各部からその動作状況のデータを収集し、収集したデータなどから随時、通常ログを生成する。通常ログは、詳細ログとは異なり、情報処理装置全体としての稼働状況などを示すログ情報であり、例えば、図４に示すようなログ情報である。通常ログを生成すると、制御部１１は、生成した通常ログを不揮発性メモリ１４内の記録領域１４ｂに時系列で格納する。
【００３８】
また、制御部１１は、自身がデータ処理のために実行した処理、あるいは、情報処理装置１０の各部が実行した処理などの詳細な動作状況を示すデータを収集し、詳細ログを生成する。詳細ログは、通常ログよりも詳細に、実行した処理内容を示す情報であり、例えば、図２に示すようなログ情報である。詳細ログを生成すると、制御部１１は、ＲＡＭ１２内の記録領域１２ａにサイクリックに当該詳細ログを格納する。
【００３９】
以上の動作を繰り返して実行することにより、通常時（障害が発生しない場合）は、制御部１１は、通常ログを不揮発性メモリ１４内の記録領域１４ｂに時系列で書き込み、詳細ログを時系列でＲＡＭ１２内の記録領域１２ａにサイクリックに書き込む。なお、通常ログを不揮発性メモリ１４の記録領域１４ｂに記憶する処理と詳細ログをＲＡＭ１２の記録領域１２ａに記憶する処理とは、並行して実行しても良いし、交互に実行するようにしても良い。
【００４０】
次に、障害発生時におけるログの保存処理について説明する。  
図１０は、情報処理装置１０における障害発生時のログの保存処理を説明するための図である。  
制御部１１は、当該情報処理装置１０において障害が発生したか否かを常時監視している。障害の発生がなければ、制御部１１は、上述した通常時の処理を繰り返し実行する。障害の発生を検出した場合、制御部１１は、発生した障害の内容を特定し、ＲＡＭ１２における記録領域１２ｂに記録されている障害発生カウンタテーブル内の発生した障害に対応する発生回数カウンタをカウントアップする。たとえば、「回線切断エラー」が発生した場合、制御部１１は、図３に示す障害発生カウンタテーブル内の「回線切断エラー」に対応する発生回数カウンタを「５」から「６」に書き換える。なお、制御部１１が障害の発生を検出する方法は、特定の方法に限定されるものではない。
【００４１】
発生回数カウンタをカウントアップすると、制御部１１は、発生した障害を示す障害ログを生成する。障害ログを生成すると、制御部１１は、生成した障害ログを不揮発性メモリ１４における記録領域１４ｃに時系列で格納する。
【００４２】
生成した障害ログを不揮発性メモリ１４内の記録領域１４ｃに時系列で格納すると、制御部１１は、不揮発性メモリ１４に記録する詳細ログの記録件数を決定する。ここで、詳細ログの記録件数の決定方法について説明する。
【００４３】
発生した障害の内容を特定すると、制御部１１は、不揮発性メモリ１４内の記録領域１４ｄに記録されている障害情報テーブルを参照して、発生した障害の障害種別及び重要度を判定する。たとえば、「回線切断エラー」が発生した場合、制御部１１は、図６に示す障害情報テーブルを参照すれば、発生した障害（「回線切断エラー」）の障害種別が「通信エラー」であると判定し、重要度が「高」であると判定する。
【００４４】
発生した障害の障害種別及び重要度を判定すると、制御部１１は、不揮発性メモリ１４内の記録領域１４ｅに記録されている仮出力件数テーブルを参照して、発生した障害の仮出力件数を判定する。たとえば、障害種別が「通信エラー」、かつ、重要度が「高」と判定した場合、制御部１１は、図７に示す仮出力件数テーブルを参照すれば、発生した障害（「回線切断エラー」）の仮出力件数が「１００」であると判定する。
【００４５】
仮出力件数を判定すると、制御部１１は、ＲＡＭ１２内の記録領域１２ｂに記録されている障害発生カウンタテーブルと不揮発性メモリ１４内の記録領域１４ｆに記録されている出力係数テーブルとを参照して、出力係数を取得する。たとえば、「回線切断エラー」が発生した場合、制御部１１は、障害発生カウンタテーブルが図３に示す状態であれば、障害発生カウンタテーブルにおける「回線切断エラー」の発生回数「５」に「１」（今回の発生回数分）を加算した「６」に更新する。制御部１１は、今回発生の「回線切断エラー」の分を加算した障害発生カウンタテーブルを参照して、「回線切断エラー」の発生回数が「６」であると判定する。今回発生した「回線切断エラー」の発生回数が「６」と判定した場合、制御部１１は、図８に示す出力係数テーブルを参照すれば、発生回数「６」に対応する出力係数が「０．５」であると判定する。
【００４６】
出力係数を判定すると、制御部１１は、判定した仮出力件数に、判定した出力係数を乗数して、詳細ログの記録件数を計算する。即ち、制御部１１は、以下の式に従って詳細ログの記録件数を計算する。  
詳細ログの記録件数＝仮出力件数×出力係数
たとえば、「回線切断エラー」が発生した場合、制御部１１は、仮出力件数「１００」に、出力係数「０．５」を掛けて、詳細ログの記録件数「５０」を計算する。  
以上の手順により、制御部１１は、詳細ログの記録件数を計算する。なお、詳細ログの記録件数は、障害が発生した時刻、不揮発性メモリ１４の残り容量及び情報処理装置１０で実行されているアプリケーションなどを考慮して決定してもよい。詳細ログの記録件数の決定方法は、特定の方法に限定するものではない。
【００４７】
詳細ログの記録件数を計算すると、制御部１１は、障害発生時から遡って、詳細ログの記録件数分の詳細ログをＲＡＭ１２内の記録領域１２ａから読み出し、読み出した詳細ログを不揮発性メモリ１４内の記録領域１４ａに時系列で記憶する。ＲＡＭ１２内の記録領域１２ａに記録されている詳細ログの件数が詳細ログ記録件数に満たない場合には、制御部１１は、ＲＡＭ１２内の記録領域１２ａに記録されている全ての詳細ログを、不揮発性メモリ１４内の記録領域１４ａに追加的に時系列で格納する。たとえば、「回線切断エラー」が発生した場合、制御部１１は、計算した詳細ログの記録件数「５０」分の詳細ログをＲＡＭ１２内の記録領域１２ａから読み出し、不揮発性メモリ１４内の記録領域１４ａに追加的に時系列で格納する。
【００４８】
読み出した詳細ログを不揮発性メモリ１４内の記録領域１４ａに時系列で記憶すると、制御部１１は、障害発生に伴うログの保存処理を終了する。障害発生時のログの保存処理を終了すると、制御部１１は、通常時のログの保存処理に戻る。
【００４９】
次に、情報処理装置１０におけるログの保存処理の流れについて説明する。  
図１１は、情報処理装置１０のログ出力動作例を説明するためのフローチャートである。  
まず、情報処理装置１０の稼働が開始されたものとする（ステップＳ１１）。情報処理装置１０の稼働が開始されると、制御部１１は、情報処理装置１０の稼働が停止されたことを監視する（ステップＳ１２）。
【００５０】
情報処理装置１０の稼働が停止されていない場合、つまり、情報処理装置１０が稼働中である場合（ステップＳ１２、ＮＯ）、制御部１１は、通常ログとして記録すべきイベントが発生したか否かを判断する（ステップＳ１３）。通常ログとして記録すべきイベントが発生したと判断した場合（ステップＳ１３、ＹＥＳ）、制御部１１は、当該イベントが発生したことを示す通常ログを生成し、生成した通常ログを不揮発性メモリ１４内の記録領域１４ａに追加的に時系列で格納する（ステップＳ１４）。
【００５１】
通常ログを不揮発性メモリ１４内の記録領域１４ｂに格納した場合、あるいは、通常ログとして記録すべきイベントが発生していないと判断した場合（ステップＳ１３、ＮＯ）、制御部１１は、詳細ログとして記録すべきイベントが発生したか否かを判断する（ステップＳ１５）。なお、ステップＳ１５−Ｓ１６の処理は、ステップＳ１３−Ｓ１４の処理の前に実行しても良いし、ステップＳ１３−Ｓ１４の処理と並行して実行しても良い。
【００５２】
詳細ログとして記録すべきイベントが発生したと判断した場合（ステップＳ１５、ＹＥＳ）、制御部１１は、当該イベントが発生したことを示す詳細ログを生成し、生成した詳細ログをＲＡＭ１２内の記録領域１４ａにサイクリックに格納する（ステップＳ１６）。
【００５３】
詳細ログをＲＡＭ１２内の記録領域１４ａに格納した場合、あるいは、詳細ログとして記録すべきイベントが発生していないと判断した場合（ステップＳ１５、ＮＯ）、制御部１１は、障害が発生したか判定する（ステップＳ１７）。
【００５４】
障害が発生したと判定した場合（ステップＳ１７、ＹＥＳ）、制御部１１は、発生した障害の内容と特定し、ＲＡＭ１２内の記録領域１２ｂに記録している発生した障害に対応する発生回数カウンタをカウントアップする（ステップＳ１８）。発生した障害に対応する発生回数カウンタをカウントアップすると、制御部１１は、発生した障害の内容を示す障害ログを生成し、生成した障害ログを不揮発性メモリ１４内の記録領域１４ｃに追加的に時系列で格納する（ステップＳ１９）。
【００５５】
障害ログを不揮発性メモリ１４内の記録領域１４ｃに格納すると、制御部１１は、発生した障害に応じて、不揮発性メモリ１４に保存すべき詳細ログの記録件数を決定する（ステップＳ２０）。詳細ログの記録件数の決定方法は、前述の通りである。発生した障害に応じた詳細ログの記録件数を決定すると、制御部１１は、障害発生時から遡って決定した詳細ログの記録件数分の詳細ログをＲＡＭ１２内の記録領域１２ａから読み出し、読み出した詳細ログを不揮発性メモリ１４内の記録領域１２ａに追加的に時系列で保存する（ステップＳ２１）。
【００５６】
障害に応じた件数の詳細ログを不揮発性メモリ１４内の記録領域１２ａに保存した場合、あるいは、障害が発生していないと判断した場合（ステップＳ１７、ＮＯ）、制御部１１は、ステップＳ１２へ戻り、上述した処理を繰り返し実行する。  
また、情報処理装置１０の稼働が停止されたと判断した場合（ステップＳ１２、ＹＥＳ）、制御部１１は、ログの保存処理を終了する。
【００５７】
以上のようなログの保存処理によれば、稼働中の情報処理装置１０は、通常時には詳細ログをＲＡＭに設けた記録領域にサイクリックに記憶しておき、障害が発生した場合には障害ログと発生した障害の内容に応じた件数の詳細ログとを不揮発性メモリに保存するようにできる。
【００５８】
上記のように、実施形態に係る情報処理装置は、通常時においてＲＡＭに詳細ログを蓄積記録し、障害が発生した場合においては、発生した障害の種別、重要度及び発生回数などに基づいて不揮発性メモリに保存する詳細ログの件数を決定し、決定した件数の詳細ログをＲＡＭから読み出して不揮発性メモリに保存する。
【００５９】
これにより、障害発生時に、発生した障害の種別、重要度および発生回数などに応じた件数の詳細ログを不揮発性メモリに保存することができ、障害が発生する毎に不要な詳細ログを不揮発性メモリに保存することによって不揮発性メモリの記憶容量が圧迫されることが防止できる。
【００６０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６１】
１０…情報処理装置、１１…制御部、１２…ＲＡＭ（第１記録手段）、１３…ＲＯＭ、１４…不揮発性メモリ（第２記録手段）、１５…通信インターフェース。
【図１】
2014052827.tif 000003
【図２】
2014052827.tif 000004
【図３】
2014052827.tif 000005
【図４】
2014052827.tif 000006
【図５】
2014052827.tif 000007
【図６】
2014052827.tif 000008
【図７】
2014052827.tif 000009
【図８】
2014052827.tif 000010
【図９】
2014052827.tif 000011
【図１０】
2014052827.tif 000012
【図１１】
2014052827.tif 000013