(57)【特許請求の範囲】
【請求項１】
ＡＰＰ（アプリケーションプログラム）がメモリへ出力したログデータを記憶装置へ出力するログ出力装置であり、
前記ＡＰＰは、ログデータのうち予め定められた第１ログデータを前記メモリの第１領域へ出力し、前記ログデータのうち、前記第１ログデータ以外の第２ログデータを前記メモリの第２領域へ出力し、
ログデータの重要度の閾値を記憶する閾値記憶部と、
前記ＡＰＰがメモリの前記第１領域へ出力した前記第１ログデータの重要度が、前記閾値記憶部が記憶した閾値以上であるか否かを判定する重要度判定部と、
前記第１ログデータのみを前記記憶装置へ出力する第１ログ出力部と、
重要度が前記閾値以上であると前記重要度判定部が判定した場合に、前記第２ログデータを前記記憶装置へ出力する第２ログ出力部と
を備えることを特徴とするログ出力装置。
【請求項２】
前記第２ログ出力部は、重要度が前記閾値以上であると判定されたログデータがメモリへ出力された時刻の前にメモリへ出力された前記第２ログデータを前記記憶装置へ出力する
ことを特徴とする請求項１に記載のログ出力装置。
【請求項３】
前記第２ログ出力部は、前記第２ログデータとともに、重要度が前記閾値以上であると判定されたログデータがメモリへ出力された時刻における、前記ＡＰＰが使用するメモリ領域のデータを前記記憶装置へ出力する
ことを特徴とする請求項１又は２に記載のログ出力装置。
【請求項４】
前記第１ログ出力部は、重要度が高い第１ログデータのみを前記記憶装置へ出力し、
前記第２ログ出力部は、前記第１ログデータよりも重要度が低い第２ログデータを前記記憶装置へ出力する
ことを特徴とする請求項１から３までのいずれかに記載のログ出力装置。
【請求項５】
ＡＰＰ（アプリケーションプログラム）がメモリへ出力したログデータを記憶装置へ出
力するログ出力プログラムであり、
前記ＡＰＰは、ログデータのうち予め定められた第１ログデータを前記メモリの第１領域へ出力し、前記ログデータのうち、前記第１ログデータ以外の第２ログデータを前記メモリの第２領域へ出力し、
前記ＡＰＰがメモリの前記第１領域へ出力した前記第１ログデータの重要度が、予め記憶装置に記憶した閾値以上であるか否かを判定する重要度判定処理と、
前記第１ログデータのみを前記記憶装置へ出力する第１ログ出力処理と、
重要度が前記閾値以上であると前記重要度判定処理で判定した場合に、前記第２ログデータを前記記憶装置へ出力する第２ログ出力処理と
を備えることを特徴とするログ出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＡＰＰ（アプリケーションプログラム）が出力するログデータの保存技術に関する。
【背景技術】
【０００２】
ＡＰＰは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶装置へログデータを出力を行うログ出力処理を行っていた。しかし、リアルタイムシステム等では、ログ出力処理を行っていると、ＡＰＰの本来の処理が遅れてしまう。そこで、ログデータの出力タイミングを少なくしたり、ログデータの出力量を少なくしたりして、ＡＰＰの本来の処理が遅れないようにしていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１９９９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ログデータの出力タイミングを少なくしたり、ログデータの出力量を少なくしたりすると、障害発生時等に必要なログデータが残っておらず、十分な解析ができない場合がある。
この発明は、ＡＰＰの本来の処理を遅らせることなく、障害発生時等に必要となるログデータを確保することを目的とする。
【課題を解決するための手段】
【０００５】
この発明に係るログ出力装置は、
ＡＰＰがメモリへ出力したログデータを記憶装置へ出力するログ出力装置であり、
ログデータの重要度の閾値を記憶する閾値記憶部と、
前記ＡＰＰがメモリへ出力したログデータの重要度が、前記閾値記憶部が記憶した閾値以上であるか否かを判定する重要度判定部と、
前記ＡＰＰがメモリへ出力したログデータのうち予め定められた第１ログデータのみを前記記憶装置へ出力する第１ログ出力部と、
重要度が前記閾値以上であると前記重要度判定部が判定した場合に、前記ＡＰＰがメモリへ出力したログデータのうち、前記第１ログデータ以外の第２ログデータを前記記憶装置へ出力する第２ログ出力部と
を備えることを特徴とする。
【発明の効果】
【０００６】
この発明に係るログ出力装置は、ＡＰＰがメモリへ出力したログデータを、ＡＰＰとは独立してＨＤＤ等の記憶装置へ出力する。そのため、この発明に係るログ出力装置によれば、ＡＰＰの処理を遅らせることなく、障害発生時等に必要となるログデータを確保することができる。
特に、この発明に係るログ出力装置は、重要度が閾値以上の場合にのみ第２ログデータも記憶装置へ出力する。そのため、この発明に係るログ出力装置によれば、不要なログデータの出力を抑えることにより、不要な負荷を計算機に掛けることがないため、ＡＰＰの処理を遅らせることがない。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係るログ出力システム１００の構成図。
【図２】ログデータの説明図。
【図３】ログ出力装置２０の処理の流れを示すフローチャート。
【図４】実施の形態２に係るログ出力システム１００の構成図。
【図５】実施の形態に係るログ出力装置２０のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００８】
実施の形態１．
図１は、実施の形態１に係るログ出力システム１００の構成図である。
ログ出力システム１００は、ＡＰＰサーバ１０、ログ出力装置２０、ＨＤＤ３０を備える。
【０００９】
ＡＰＰサーバ１０は、ＡＰＰ１１が動作するサーバである。
ＡＰＰ１１は、ログ出力処理を実行すると、ログデータをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により構成されたメモリ１２へ出力する。ここで、ログデータには、メッセージと、重要度と、出力日時とが含まれている。
ＡＰＰ１１は、ログデータの重要度が予め定められた第１閾値以上の重要度が高い場合には、メモリ１２の第１領域１３へログデータ（第１ログデータ）を出力し、重要度が第１閾値よりも低い場合には、メモリ１２の第２領域１４へログデータ（第２ログデータ）を出力する。
【００１０】
ログ出力装置２０は、ＡＰＰ１１が出力したログデータをＨＤＤ３０へ出力して保存する装置である。ログ出力装置２０は、閾値記憶部２１、重要度判定部２２、ログ出力部２３を備える。
【００１１】
閾値記憶部２１は、ログデータの重要度の第２閾値を記憶装置に記憶する。ここで、第２閾値は、第１閾値以上の重要度が設定されている。
【００１２】
重要度判定部２２は、処理装置により、ＡＰＰ１１が出力したログデータの重要度が第２閾値以上であるか否かを判定する。
【００１３】
ログ出力部２３は、ＡＰＰ１１がメモリ１２へ出力したログデータをＨＤＤ３０へ出力する。ログ出力部２３は、第１ログ出力部２４、第２ログ出力部２５を備える。
第１ログ出力部２４は、ＡＰＰ１１がメモリ１２の第１領域１３へ出力した全ての第１ログデータをＨＤＤ３０へ出力する。
第２ログ出力部２５は、ログデータの重要度が第２閾値以上であると重要度判定部２２が判定した場合に、ＡＰＰ１１がメモリ１２の第２領域１４へ出力した第２ログデータをＨＤＤ３０へ出力する。特に、第２ログ出力部２５は、重要度が第２閾値以上であると判定されたログデータが出力された出力日時の前後所定の時間（例えば３０秒）に第２領域１４へ出力された第２ログデータをＨＤＤ３０へ出力する。
【００１４】
ＨＤＤ３０は、ログデータを蓄積するための記憶装置である。ＨＤＤ３０に代えて、他の記憶装置を用いてもよい。
【００１５】
図２は、ログデータの説明図である。
ログデータには、上述した通り、メッセージと、重要度と、出力日時とが含まれる。
メッセージは、例えば、発生したエラーの内容や、エラーの発生した場所（プログラムコードのファイル名、行番号）や、処理に使用していたデータ等が記載されている。
重要度は、複数のレベルがある。ここでは、重要度の高いものから順に、致命的、警告、情報、詳細１、詳細２、詳細３等があるとする。
出力日時は、ログデータが出力された日時である。
【００１６】
図３は、ログ出力装置２０の処理の流れを示すフローチャートである。
なお、前提として、ＡＰＰ１１は、順次ログデータをメモリ１２へ出力するものとする。ここでは、第１閾値は、「情報」であり、重要度が、致命的、警告、情報のログデータは第１ログデータとして第１領域１３へ出力され、重要度が、詳細１，２，３のログデータは第２ログデータとして第２領域１４へ出力されるものとする。
また、第２閾値は、「警告」であるとする。
【００１７】
ログ出力装置２０は、第１ログデータがメモリ１２の第１領域１３に出力される度に図３に示す処理を実行する。
第１ログ出力部２４は、新たにメモリ１２の第１領域１３に出力された第１ログデータを、ＨＤＤ３０へ出力する（Ｓ１）。重要度判定部２２は、新たにメモリ１２の第１領域１３に出力されたログデータの重要度が第２閾値（警告）以上であるか否かを判定する（Ｓ２）。ログデータの重要度が第２閾値以上の場合（Ｓ２でＹＥＳ）、第２ログデータ出力部は、重要度が第２閾値以上のログデータが出力された日時の前に、第２領域１４の所定の領域へ出力された第２ログデータを、ＨＤＤ３０へ出力する（Ｓ３）。一方、ログデータの重要度が第２閾値未満の場合（Ｓ２でＮＯ）、第２ログデータをＨＤＤ３０へ出力することなく、処理を終了する。
なお、Ｓ３で、第２ログデータ出力部は、重要度が「警告」のログデータが出力されたと判定したときは、「警告」のログデータ及びその前に出力された第２ログデータをＨＤＤ３０に出力する。その前のタイミングで出力された第２ログデータは、メモリ１２におけるアドレス（領域）で把握することができる。
また、第２ログデータ出力部は、ＨＤＤ３０へ出力した第２ログデータはメモリ１２上から消去するように動作すれば、既にＨＤＤ３０へ出力されている第２ログデータを、重複してＨＤＤ３０へ出力することはない。
【００１８】
以上のように、実施の形態１に係るログ出力装置２０は、ＡＰＰ１１がメモリ１２へ出力したログデータを、ＡＰＰ１１とは独立してＨＤＤ３０へ出力する。そのため、ログ出力装置２０によれば、ＡＰＰ１１の処理を遅らせることなく、障害発生時等に必要となるログデータを確保することができる。
なお、ＡＰＰ１１がログデータを出力するのは、ＲＡＭ等のメモリ１２である。メモリ１２はＨＤＤ３０等に比べ、動作が非常に高速であり、ＡＰＰ１１の処理に与える影響が小さい。
【００１９】
また、ログ出力装置２０は、重要度が第２閾値以上の場合にのみ第２ログデータもＨＤＤ３０へ出力する。そのため、ログ出力装置２０によれば、不要なログデータの出力を抑えることにより、不要な負荷を計算機に掛けることがないため、ＡＰＰ１１の処理を遅らせることがない。また、不要なログデータの出力を抑えることにより、ＨＤＤ３０の容量を圧迫することもない。
【００２０】
また、ログ出力装置２０は、重要度が第２閾値以上のログデータ及び重要度が第２閾値以上のログデータが出力された時刻の前に出力された第２ログデータをＨＤＤ３０へ出力する。つまり、重要なログデータが出力された後だけでなく、重要なログデータが出力される前の詳細なログデータもＨＤＤ３０へ出力する。そのため、重要なログデータが出力された原因の解析を円滑に行うことができる。なお前述したように、重要度が第２閾値以上のログデータが出力された時刻の前に出力された第２ログデータは、メモリ上のアドレス（領域）を参照することで特定できる。この重要度が第２閾値以上のログデータが出力された時刻の前に出力された第２ログデータの数も１つとするか、複数とするかは、任意に定めることができる。
また、ログ出力装置２０は、重要度が第２閾値以上のログデータのみをＨＤＤ３０に出力するように構成してもよい。また重要度が第２閾値以上のログデータが出力されたと判定したときは、第２領域１４のログデータを全てＨＤＤ３０に出力するように構成してもよい。
【００２１】
なお、ログデータのうち、重要度の低い、詳細１，２，３等の中には、メッセージとして個人情報等の業務データが含まれている場合がある。これらのログデータは、障害の解析には有用であるし、これらのログデータなしに障害の原因を特定できない場合もある。しかし、これらのログデータがＨＤＤ３０に蓄積されることは、セキュリティの観点からは望ましいことではない。そのため、通常、できる限り、これらのログデータをＨＤＤ３０へは出力しないことが望ましい。
【００２２】
実施の形態２．
実施の形態２では、重要度が第２閾値以上のログデータが出力された場合に、第２ログデータだけでなく、コアファイルもＨＤＤ３０へ出力することについて説明する。
実施の形態２では、実施の形態１と異なる部分について説明する。
【００２３】
図４は、実施の形態２に係るログ出力システム１００の構成図である。
ＡＰＰ１１は、処理を行う際、メモリ１２のコアファイル領域１５を作業領域として使用する。そのため、ＡＰＰ１１が処理をしている時には、処理に使用している業務データや、計算途中のデータ等（これをコアファイルと呼ぶ）がコアファイル領域１５に記憶されている。
【００２４】
そこで、第２ログ出力部２５は、図３のＳ３において、第２ログデータをＨＤＤ３０へ出力する際、合わせてコアファイルもＨＤＤ３０へ出力する。なお、コアファイルには、出力時刻を付しておく。
【００２５】
以上のように、実施の形態２に係るログ出力装置２０は、重要度が第２閾値以上のログデータが出力された場合に、第２ログデータだけでなく、コアファイルもＨＤＤ３０へ出力する。そのため、障害等の解析をより深く行うことが可能となる。
【００２６】
図５は、実施の形態に係るログ出力装置２０のハードウェア構成の一例を示す図である。
図５に示すように、ログ出力装置２０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００２７】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００２８】
プログラム群９２３には、上記の説明において「閾値記憶部２１」、「重要度判定部２２」、「ログ出力部２３」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「第２閾値」、「ログデータ」、「コアファイル」等の情報やデータや信号値や変数値やパラメータが、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２９】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組合せ、さらには、ファームウェアとの組合せで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００３０】
１０  ＡＰＰサーバ、１１  ＡＰＰ、１２  メモリ、１３  第１領域、１４  第２領域、１５  コアファイル領域、２０  ログ出力装置、２１  閾値記憶部、２２  重要度判定部、２３  ログ出力部、２４  第１ログ出力部、２５  第２ログ出力部、３０  ＨＤＤ、１００  ログ出力システム。
【要約】
【課題】ＡＰＰ（アプリケーションプログラム）の処理を遅らせることなく、障害発生時等に必要となるログデータを確保することを目的とする。
【解決手段】ＡＰＰ１１はメモリ１２へログデータを出力しておき、ログ出力装置２０は、ＡＰＰがメモリへ出力したログデータのうち予め定められた第１ログデータについては全てＨＤＤ３０へ出力し、ＡＰＰがメモリへ出力したログデータの重要度が閾値以上である場合にのみ、ＡＰＰ１１がメモリ１２へ出力したログデータのうち、第２ログデータをＨＤＤ３０へ出力する。
【選択図】図１【図１】
0005496377.tif 000002
【図２】
0005496377.tif 000003
【図３】
0005496377.tif 000004
【図４】
0005496377.tif 000005
【図５】
0005496377.tif 000006