(57)【要約】【課題】ログのファイルサイズを小さくすることができる情報処理装置及び情報処理プログラムを提供することである。【解決手段】情報処理装置は、実行部と、データ比較部とを備える。実行部は、アプリケーションプログラムを実行し、アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報が付与されたログを記憶部に記憶させる。データ比較部は、記憶部に記憶されたログのうち、第１の時刻情報が付与された第１のログと、第１の時刻情報よりも新しい第２の時刻情報が付与された第２のログと、時刻情報以外について比較し、第１のログと第２のログとが時刻情報以外で異なると判定した場合、第２のログを不揮発性記憶部に記憶させる。【選択図】図１
2015141472.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行し、前記アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報が付与されたログを記憶部に記憶させる実行部と、
前記記憶部に記憶されたログのうち、第１の時刻情報が付与された第１のログと、前記第１の時刻情報よりも新しい第２の時刻情報が付与された第２のログと、を時刻情報以外について比較し、前記第１のログと前記第２のログとが時刻情報以外で異なると判定した場合、前記第２のログを不揮発性記憶部に記憶させるデータ比較部と、
を備える情報処理装置。
【請求項２】
前記データ比較部は、前記第１のログと前記第２のログとが時刻情報以外で異なると判定した場合、前記第２のログを新たな前記第１のログとして前記記憶部に記憶させる、請求項１に記載の情報処理装置。
【請求項３】
前記データ比較部により、前記第１のログと前記第２のログとが時刻情報以外で同じであると判定され、かつ、前記第１の時刻情報と前記第２の時刻情報との差分が閾値以上である場合、前記第２のログを、前記不揮発性記憶部に記憶させる差分比較部
を備える請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記第１のログ及び前記第２のログは、項目の単位で比較可能であり、
前記データ比較部は、予め定められたマスク情報に基づいて、前記第１のログと前記第２のログとを、前記時刻情報以外の前記項目の単位で比較し、前記第１のログと前記第２のログとが前記時刻情報以外の前記項目の単位で異なる場合に、前記第１のログと前記第２のログとが時刻情報以外で異なると判定する、請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
コンピュータに、
アプリケーションプログラムを実行し、前記アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報が付与されたログを記憶部に記憶させる手順と、
前記記憶部に記憶されたログのうち、第１の時刻情報が付与された第１のログと、前記第１の時刻情報よりも新しい第２の時刻情報が付与された第２のログと、を時刻情報以外について比較し、前記第１のログと前記第２のログとが時刻情報以外で異なると判定した場合、前記第２のログを不揮発性記憶部に記憶させる手順と、
を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
情報処理装置は、アプリケーションプログラムの実行に伴ってログを記憶装置に保存することがある。一例として、同一のログが出力された回数をカウントし、出力された回数が閾値を超えた場合にそのログを記憶装置に保存することにより、ログを保存する回数を節約する情報処理装置が知られている。ログを保存する情報処理装置は、ログのファイルサイズが大きくなってしまい、記憶領域を消費してしまう場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６３３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、ログのファイルサイズを小さくすることができる情報処理装置及び情報処理プログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、実行部と、データ比較部とを備える。実行部は、アプリケーションプログラムを実行し、アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報が付与されたログを記憶部に記憶させる。データ比較部は、記憶部に記憶されたログのうち、第１の時刻情報が付与された第１のログと、第１の時刻情報よりも新しい第２の時刻情報が付与された第２のログと、を時刻情報以外について比較し、第１のログと第２のログとが時刻情報以外で異なると判定した場合、第２のログを不揮発性記憶部に記憶させる。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態における、情報処理装置の構成例を示す図である。
【図２】第１の実施形態における、実行部が時系列で生成するログの例を示す図である。
【図３】第１の実施形態における、ログの項目をマスクする処理を説明するための図である。
【図４】第１の実施形態における、不揮発性記憶装置が記憶するログファイルの例を示す図である。
【図５】第１の実施形態における、情報処理装置の動作例を示すフローチャートである。
【図６】第２の実施形態における、情報処理装置の構成例を示す図である。
【図７】第２の実施形態における、ポインタ値の初期値の例を示す図である。
【図８】第２の実施形態における、情報処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態の情報処理装置及び情報処理プログラムを、図面を参照して説明する。
（第１の実施形態）
図１は、第１の実施形態における、情報処理装置１の構成例を示す図である。情報処理装置１は、制御装置１０と、記憶装置１１と、不揮発性記憶装置１２（不揮発性記憶部）とを備える。情報処理装置１は、例えば、改札装置や発券機などの機器に組み込まれる組み込みコンピュータである。
【０００８】
制御装置１０は、情報処理装置１の動作を制御する。制御装置１０は、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサである。制御装置１０は、実行部１０１と、データ比較部１０２と、差分比較部１０３とを有する。制御装置１０の各機能部は、例えば、ＲＯＭ（Read Only Memory）（不図示）に記憶され、あるいは、不揮発性記憶装置１２からＲＡＭ（Random Access Memory）（不図示）等に展開された、アプリケーションプログラムを実行することにより機能するソフトウェア機能部である。なお、制御装置１０の各機能部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェア機能部でもよい。以下では、制御装置１０の各機能部は、一例として、ソフトウェア機能部であるものとして説明を続ける。
【０００９】
実行部１０１は、記憶装置１１に記憶されたアプリケーションプログラムを実行することにより、アプリケーションプログラムの実行に伴って生成されたログを、記憶装置１１の第２ログ記憶部１１２（後述する）に書き込む。
【００１０】
記憶装置１１は、ＲＡＭ、フラッシュメモリ、又は、レジスタ等である。記憶装置１１は、データを一時記憶するメモリ領域を有する。記憶装置１１は、ログを一時記憶するためのログ保管エリアとして、第１ログ記憶部１１１と、第２ログ記憶部１１２とを有する。第１ログ記憶部１１１は、実行部１０１が過去に生成したログを記憶する。以下、第１ログ記憶部１１１に記憶されたログを、「前回のログ」という。第２ログ記憶部１１２は、実行部１０１が直近に生成したログを記憶する。以下、第２ログ記憶部１１２に記憶されたログを、「今回のログ」という。
【００１１】
不揮発性記憶装置１２は、フラッシュメモリ、又は、ＨＤＤ（Hard Disk Drive）等の不揮発性の記憶装置である。不揮発性記憶装置１２は、データ比較部１０２が出力したログを、ログファイルとして記憶する。また、不揮発性記憶装置１２は、差分比較部１０３が出力したログを、ログファイルとして記憶してもよい。また、不揮発性記憶装置１２は、マスク情報や、各種閾値を記憶する。マスク情報は、ユーザによって予め定められる。
【００１２】
図２は、第１の実施形態における、実行部１０１が時系列で生成するログの例を示す図である。ログの項目には、タイムスタンプ（時刻情報）と、種別と、テキストと、エラーとがある。つまり、ログは、タイムスタンプと、タイムスタンプ以外のデータとを含む。タイムスタンプは、ログが生成された時刻を示す情報である。タイムスタンプの最下の桁は、例えば、秒単位で表現される。種別は、エラーが発生したモジュールの種別である。テキストは、種別に示されたモジュールが実行した動作を示す情報である。エラーは、種別に示されたモジュールが実行した動作のエラーを示す情報である。
【００１３】
第２ログ記憶部１１２には、このように時系列で生成される直近のログが、今回のログとして上書き保存される。また、第１ログ記憶部１１１には、今回のログとの比較対象となる「前回のログ」が書き込まれる。
【００１４】
ログの項目は、互いに対応付けられている。図２では、タイムスタンプ「１１：００：０１」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ（送信）」と、エラー「タイムアウト」とが、互いに対応付けられている。タイムスタンプ「１１：００：０２」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ」と、エラー「タイムアウト」とが、互いに対応付けられている。タイムスタンプ「１１：００：０３」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ」と、エラー「タイムアウト」とが、互いに対応付けられている。
【００１５】
また、タイムスタンプ「１１：０１：００」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ」と、エラー「タイムアウト」とが、互いに対応付けられている。タイムスタンプ「１２：００：０１」と、種別「モジュールＢ」と、テキスト「ｒｅｃｖ（受信）」と、エラー「タイムアウト」とが、互いに対応付けられている。タイムスタンプ「１２：００：０２」と、種別「モジュールＢ」と、テキスト「ｒｅｃｖ」と、エラー「タイムアウト」とが、互いに対応付けられている。
【００１６】
データ比較部１０２（図１を参照）は、前回のログと今回のログとをタイムスタンプ以外の項目について比較し、前回のログと今回のログとがタイムスタンプ以外の項目で異なる場合、今回のログを不揮発性記憶装置１２に記憶させる。また、データ比較部１０２は、今回のログを不揮発性記憶装置１２に記憶させた場合、今回のログを新たな前回のログとして、第１ログ記憶部１１１に記憶させる。
【００１７】
図２を用いて説明すれば、例えば、前回のログが、タイムスタンプ「１１：００：０１」と、タイムスタンプ以外の項目「モジュールＡ」、「ｓｅｎｄ」及び「タイムアウト」とであり、今回のログが、タイムスタンプ「１１：００：０２」と、タイムスタンプ以外の項目「モジュールＡ」、「ｓｅｎｄ」及び「タイムアウト」とであるとする。この場合、データ比較部１０２は、前回のログに含まれるタイムスタンプ以外の項目と、今回のログに含まれるタイムスタンプ以外の項目とが同じであるため、今回のログ（タイムスタンプ「１１：００：０２」など）を、不揮発性記憶装置１２に記憶させない。
【００１８】
ここで、データ比較部１０２は、前回のログに含まれるタイムスタンプ以外の項目と、今回のログに含まれるタイムスタンプ以外の項目とのうち、一部の項目については、マスクすることにより、比較対象から除外してもよい。すなわち、データ比較部１０２は、比較対象から除外するか否かを項目の単位で定めたマスク情報に基づいて、前回のログに含まれるタイムスタンプ以外の項目と、今回のログに含まれるタイムスタンプ以外の項目とを、項目の単位で比較してもよい。
【００１９】
図３は、第１の実施形態における、ログの項目をマスクする処理を説明するための図である。データ比較部１０２は、前回のログに含まれるタイムスタンプ以外の項目と、今回のログに含まれるタイムスタンプ以外の項目とが、マスクされていない項目で異なる場合、今回のログを不揮発性記憶装置１２に記憶されているログファイルに登録する。
【００２０】
例えば、図３では、項目「種別」には、マスク情報「０（比較対象外）」が定められている。この場合、データ比較部１０２は、項目「種別」を比較対象としない。項目「テキスト」には、マスク情報「１（比較対象）」が定められている。この場合、データ比較部１０２は、項目「テキスト」を比較対象とする。項目「エラー」には、マスク情報「１（比較対象）」が定められている。この場合、データ比較部１０２は、項目「エラー」を比較対象とする。
【００２１】
図３では、タイムスタンプ「１１：００：０１」を含む前回のログと、タイムスタンプ「１２：００：０１」を含む今回のログとで、種別が異なっているが、項目「種別」にはマスク情報「０（比較対象外）」が定められているため、データ比較部１０２は、前回のログ及び今回のログが類似の事象により発生したログであるとして、独立したログとしては、今回のログを不揮発性記憶装置１２に記憶させない。
【００２２】
差分比較部１０３（図１を参照）は、データ比較部１０２が不揮発性記憶装置１２に記憶させないとした今回のログと、前回のログとについて、第１のタイムスタンプと第２のタイムスタンプとの差分を比較し、差分が閾値以上である場合、独立したログとして今回のログを不揮発性記憶装置１２に記憶させる。一方、差分比較部１０３は、第１のタイムスタンプと第２のタイムスタンプとの差分を比較し、差分が閾値未満である場合、前回のログと今回のログとには今回のログを記憶させるほどの相違点が無いと判定し、第１のタイムスタンプと第２のタイムスタンプとの差分を、不揮発性記憶装置１２に記憶させる。ユーザは、差分比較部１０３が使用する閾値を、予め定めることができる。以下、閾値は、一例として、「３秒」に定められているものとする。
【００２３】
図２を用いて説明すれば、例えば、前回のログがタイムスタンプ「１１：００：０１」を含み、今回のログがタイムスタンプ「１１：００：０２」を含む場合、差分比較部１０３は、タイムスタンプの差分が閾値未満であるため、タイムスタンプの差分「１秒（＝１１：００：０２−１１：００：０１）」を、不揮発性記憶装置１２にログファイルとして登録する。また、例えば、前回のログがタイムスタンプ「１１：００：０１」を含み、今回のログがタイムスタンプ「１１：００：０３」を含む場合、差分比較部１０３は、タイムスタンプの差分が閾値未満であるため、タイムスタンプの差分「２秒（＝１１：００：０３−１１：００：０１）」を、不揮発性記憶装置１２に記憶されているログファイルに登録する。
【００２４】
また、例えば、前回のログがタイムスタンプ「１１：００：０１」を含み、今回のログがタイムスタンプ「１１：０１：００」を含む場合、差分比較部１０３は、タイムスタンプの差分が閾値以上であるため、今回のログ（タイムスタンプ「１１：０１：００」、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」）を、不揮発性記憶装置１２に記憶されているログファイルに登録する。
【００２５】
また、例えば、前回のログがタイムスタンプ「１１：０１：００」を含み、今回のログがタイムスタンプ「１２：００：０１」を含む場合、差分比較部１０３は、タイムスタンプの差分が閾値以上であるため、今回のログ（タイムスタンプ「１２：００：０１」、種別「モジュールＢ」、テキスト「ｒｅｃｖ」、エラー「タイムアウト」）を、不揮発性記憶装置１２に記憶されているログファイルに登録する。また、例えば、前回のログがタイムスタンプ「１２：００：０１」を含み、今回のログがタイムスタンプ「１２：００：０２」を含む場合、差分比較部１０３は、タイムスタンプの差分が閾値以上でないため、差分「１秒（＝１２：００：０２−１２：００：０１）」を、不揮発性記憶装置１２に記憶されているログファイルに登録する。
【００２６】
図４は、第１の実施形態における、不揮発性記憶装置１２が記憶するログファイルの例を示す図である。このログファイルには、図２に示すログに基づいてデータ比較部１０２及び差分比較部１０３が出力したログが登録されている。ログファイルの項目には、「タイムスタンプ又は差分」と、種別と、テキストと、エラーとが含まれる。つまり、図４に示すログファイルの項目には、タイムスタンプの代わりに、「タイムスタンプ又は差分」が含まれている。この結果、図４に示すログファイルは、図２に示すログをそのまま不揮発性記憶装置１２に記憶させる場合と比較して、ファイルサイズが小さくなっている。
【００２７】
次に、情報処理装置１の動作を説明する。
図５は、第１の実施形態における、情報処理装置１の動作例を示すフローチャートである。
実行部１０１は、第２ログ記憶部１１２（今回ログ保管エリア）に、今回のログを記憶させる（ステップＳ１０１）。
【００２８】
データ比較部１０２は、今回のログが記憶されると、前回のログと今回のログとがタイムスタンプ以外の項目で異なるか否かを判定する（ステップＳ１０２）。例えば、データ比較部１０２は、マスク情報に基づいて比較対象とされたタイムスタンプ以外の項目を比較して、全ての項目が同じ場合に同一であると判定し、一つでも項目が異なる場合には異なると判定する。
【００２９】
データ比較部１０２が、前回のログのデータと、今回のログのデータとがタイムスタンプ以外の項目で異なると判定しなかった場合（ステップＳ１０２：ＮＯ）、差分比較部１０３は、第１ログ記憶部１１１（前回ログ保管エリア）に記憶された前回のログのタイムスタンプと、第２ログ記憶部１１２に記憶された今回のログのタイムスタンプとの差分が、予め定められた閾値未満であるか否かを判定する（ステップＳ１０３）。
【００３０】
前回のログのタイムスタンプと、今回のログのタイムスタンプとの差分が、閾値未満である場合（ステップＳ１０３：ＹＥＳ）、差分比較部１０３は、前回のログ及び今回のログが同じ又は類似の事象により発生したログであると判定し、第１ログ記憶部１１１に記憶された前回のログのタイムスタンプと、第２ログ記憶部１１２に記憶された今回のログのタイムスタンプとの差分を、不揮発性記憶装置１２（ログ出力エリア）に記憶させる（ステップＳ１０４）。さらに、差分比較部１０３は、マスク情報に基づいて比較対象とされた項目のデータを、不揮発性記憶装置１２に記憶させてもよい。差分比較部１０３は、ステップＳ１０１に処理を戻す。
【００３１】
一方、前回のログのデータと、今回のログのデータとが異なると判定した場合（ステップＳ１０２：ＹＥＳ）、差分比較部１０３は、前回のログ及び今回のログが異なる事象により発生したログであると判定し、第２ログ記憶部１１２に記憶された今回のログを、不揮発性記憶装置１２に記憶させる（ステップＳ１０５）。また、差分比較部１０３は、第２ログ記憶部１１２に記憶された今回のログを、新たな前回のログとして第１ログ記憶部１１１に記憶させる（ステップＳ１０６）。差分比較部１０３は、ステップＳ１０１に処理を戻す。
【００３２】
前回のログのタイムスタンプと、今回のログのタイムスタンプとの差分が、閾値未満でない場合（ステップＳ１０３：ＮＯ）、差分比較部１０３は、前回のログ及び今回のログが異なる事象により発生したログであると判定し、第２ログ記憶部１１２に記憶された今回のログを、不揮発性記憶装置１２に記憶させる（ステップＳ１０５）。また、差分比較部１０３は、第２ログ記憶部１１２に記憶された今回のログを、新たな前回のログとして第１ログ記憶部１１１に記憶させる（ステップＳ１０６）。差分比較部１０３は、ステップＳ１０１に処理を戻す。
【００３３】
以上のように、情報処理装置１は、実行部１０１と、データ比較部１０２とを備える。実行部１０１は、アプリケーションプログラムを実行し、アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報（タイムスタンプ）が付与されたログを、記憶装置１１の第２ログ記憶部１１２に記憶させる。データ比較部１０２は、記憶装置１１の第１ログ記憶部１１１及び第２ログ記憶部１１２に記憶されたログのうち、第１の時刻情報が付与された前回のログと、第１の時刻情報よりも新しい第２の時刻情報が付与された今回のログと、を時刻情報以外について比較し、前回のログと今回のログとが時刻情報以外で異なると判定した場合、今回のログを不揮発性記憶装置１２に記憶させる。
【００３４】
情報処理プログラムは、情報処理装置１のコンピュータに、アプリケーションプログラムを実行し、アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報（タイムスタンプ）が付与されたログを、記憶装置１１の第２ログ記憶部１１２に記憶させる手順を実行させる。さらに、情報処理プログラムは、情報処理装置１のコンピュータに、記憶装置１１の第１ログ記憶部１１１及び第２ログ記憶部１１２に記憶されたログのうち、第１の時刻情報が付与された前回のログと、第１の時刻情報よりも新しい第２の時刻情報が付与された今回のログと、を時刻情報以外について比較し、前回のログと今回のログとが時刻情報以外で異なると判定した場合、今回のログを不揮発性記憶装置１２に記憶させる手順を実行させる。
【００３５】
この構成により、データ比較部１０２は、前回のログと今回のログとを時刻情報以外について比較し、前回のログと今回のログとが時刻情報以外で異なると判定した場合、今回のログを不揮発性記憶装置１２に記憶させる。
これにより、情報処理装置１及び情報処理プログラムは、ログのファイルサイズを小さくすることができる。つまり、情報処理装置１及び情報処理プログラムは、連続して出力される同じログが不揮発性記憶装置１２に記憶されることを抑制し、不揮発性記憶装置１２に記憶させるログのファイルサイズを減らすことができる。また、情報処理装置１及び情報処理プログラムは、サイクリックなログファイルにログを出力する場合でも、同じログが大量に出力されないため、重要なログが上書きされてしまうことを避けることができる。
【００３６】
データ比較部１０２は、前回のログと今回のログとが時刻情報以外で異なると判定した場合、今回のログを新たな前回のログとして第１ログ記憶部１１１に記憶させる。
これにより、情報処理装置１及び情報処理プログラムは、不揮発性記憶装置１２の記憶領域の消費を増大させない範囲内で、記憶装置１１の記憶領域の消費を低減することができる。
【００３７】
情報処理装置１は、差分比較部１０３を備える。差分比較部１０３は、データ比較部１０２により、前回のログと今回のログとが時刻情報以外で同じであると判定され、かつ、第１の時刻情報と第２の時刻情報との差分が閾値以上である場合、今回のログを、不揮発性記憶装置１２に記憶させる。
これにより、情報処理装置１及び情報処理プログラムは、どれくらいの頻度でログが出力されたかを記憶することができる。
【００３８】
前回のログ及び今回のログは、項目の単位で比較可能である。
データ比較部は、予め定められたマスク情報に基づいて、前回のログと今回のログとを、項目の単位で時刻情報以外を比較し、前回のログと今回のログとが時刻情報以外の項目の単位で異なる場合に、前回のログと今回のログとが時刻情報以外で異なると判定する。
【００３９】
データ比較部１０２は、ログの差分が無視できる場合には、そのログの差分を不揮発性記憶装置１２に記憶させないようにすることができ、不揮発性記憶装置１２の記憶領域の消費を低減することができる。
【００４０】
（第２の実施形態）
以下、第２の実施形態の情報処理装置及び情報処理プログラムを、図面を参照して説明する。第２の実施形態では、記憶装置がバッファ部を有する点が、第１の実施形態と相違する。第２の実施形態では、第１の実施形態との相違点についてのみ説明する。
【００４１】
図６は、第２の実施形態における、情報処理装置１ａの構成例を示す図である。情報処理装置１ａは、制御装置１０と、記憶装置１１ａと、不揮発性記憶装置１２（不揮発性記憶部）とを備える。つまり、情報処理装置１ａは、記憶装置１１の代わりに、記憶装置１１ａを備える。
【００４２】
記憶装置１１ａは、ＲＡＭ、フラッシュメモリ、又は、レジスタ等である。記憶装置１１ａは、データを一時記憶するメモリ領域を有する。記憶装置１１ａは、複数のログを一時記憶するためのバッファ部１１３を有する。バッファ部１１３は、実行部１０１が前回生成した前回のログと、実行部１０１が今回生成した今回のログとを記憶する。
【００４３】
データ比較部１０２又は差分比較部１０３は、バッファ部１１３における前回のログの記憶領域を示す第１ポインタ値（アドレス値）と、バッファ部１１３における今回のログの記憶領域を示す第２ポインタ値とを更新する。第１ポインタ値は、前回のログに限らず、過去のいずれかのログの記憶領域を示すポインタ値でもよい。また、第２ポインタ値は、今回のログに限らず、第１ポインタ値が示すログよりも新しいいずれかのログの記憶領域を示すポインタ値でもよい。
【００４４】
図７は、第２の実施形態における、ポインタ値の初期値の例を示す図である。図７に示す表の段には、記憶領域を示す符号（２０）〜（２５）を振って説明する。図７に示す例では、第１ポインタ値の初期値は、タイムスタンプ「１１：００：０１」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ」と、エラー「タイムアウト」とが記憶された、前回のログの記憶領域（２０）を示している。一方、第２ポインタ値の初期値は、時系列で次のタイムスタンプ「１１：００：０２」と、種別「モジュールＡ」と、テキスト「ｓｅｎｄ」と、エラー「タイムアウト」とが記憶された、今回のログの記憶領域（２１）を示している。
【００４５】
図７に示す例では、まず、データ比較部１０２は、第１ポインタ値の初期値が示す記憶領域（２０）に記憶された前回のログを、不揮発性記憶装置１２に記憶させる。
次に、データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２１）に記憶された今回のログに含まれるタイムスタンプ「１１：００：０２」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、を比較する。データ比較部１０２は、第１の実施形態と同様にマスク情報に基づいて、前回のログと今回のログとを比較してもよい。
【００４６】
データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２１）に記憶された今回のログに含まれるタイムスタンプ「１１：００：０２」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」とが同じであると判定する。
【００４７】
差分比較部１０３は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」と、第２ポインタ値が示す記憶領域（２１）に記憶された今回のログに含まれるタイムスタンプ「１１：００：０２」との差分を算出する。差分比較部１０３は、タイムスタンプの差分「１秒」が閾値「３秒」未満であるため、差分比較部１０３は、タイムスタンプの差分「１秒」を、不揮発性記憶装置１２に記憶させる。差分比較部１０３は、第２ポインタ値のみを、時系列で次のログの記憶領域（２２）を示すように進めて更新する。
【００４８】
次に、データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域に記憶された今回のログに含まれるタイムスタンプ「１１：００：０３」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、を比較する。
【００４９】
データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２２）に記憶された今回のログに含まれるタイムスタンプ「１１：００：０３」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」とが同じであると判定する。
【００５０】
差分比較部１０３は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」と、第２ポインタ値が示す記憶領域（２２）に記憶された今回のログに含まれるタイムスタンプ「１１：００：０３」との差分を算出する。差分比較部１０３は、タイムスタンプの差分「２秒」が閾値「３秒」未満であるため、差分比較部１０３は、タイムスタンプの差分「２秒」を、不揮発性記憶装置１２に記憶させる。差分比較部１０３は、第２ポインタ値のみを、時系列で次のログの記憶領域（２３）を示すように進めて更新する。
【００５１】
次に、データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２３）に記憶された今回のログに含まれるタイムスタンプ「１１：０１：００」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、を比較する。
【００５２】
データ比較部１０２は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２３）に記憶された今回のログに含まれるタイムスタンプ「１１：０１：００」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」とが同じであると判定する。
【００５３】
差分比較部１０３は、第１ポインタ値が示す記憶領域（２０）に記憶された前回のログに含まれるタイムスタンプ「１１：００：０１」と、第２ポインタ値が示す記憶領域（２３）に記憶された今回のログに含まれるタイムスタンプ「１１：０１：００」との差分を算出する。差分比較部１０３は、タイムスタンプの差分「５９秒」が閾値「３秒」以上であるため、第２ポインタ値が示す記憶領域（２３）に記憶された今回のログである、タイムスタンプ「１１：０１：００」、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」を、不揮発性記憶装置１２に記憶させる。差分比較部１０３は、第１ポインタ値を、現在の第２ポインタ値が示す記憶領域（２３）に更新すると共に、第２ポインタ値を、時系列で次のログの記憶領域（２４）を示すように進めて更新する。
【００５４】
次に、データ比較部１０２は、第１ポインタ値が示す記憶領域（２３）に記憶された前回のログに含まれるタイムスタンプ「１１：０１：００」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２４）に記憶された今回のログに含まれるタイムスタンプ「１２：００：０１」以外の項目である、種別「モジュールＢ」、テキスト「ｒｅｃｖ」、エラー「タイムアウト」と、を比較する。
【００５５】
データ比較部１０２は、第１ポインタ値が示す記憶領域（２３）に記憶された前回のログに含まれるタイムスタンプ「１１：０１：００」以外の項目である、種別「モジュールＡ」、テキスト「ｓｅｎｄ」、エラー「タイムアウト」と、第２ポインタ値が示す記憶領域（２４）に記憶された今回のログに含まれるタイムスタンプ「１２：００：０１」以外の項目である、種別「モジュールＢ」、テキスト「ｒｅｃｖ」、エラー「タイムアウト」とが同じでないと判定する。
【００５６】
データ比較部１０２は、第２ポインタ値が示す記憶領域（２４）に記憶された今回のログである、タイムスタンプ「１２：００：０１」、種別「モジュールＢ」、テキスト「ｒｅｃｖ」、エラー「タイムアウト」を、不揮発性記憶装置１２に記憶させる。データ比較部１０２は、第１ポインタ値を、現在の第２ポインタ値が示す記憶領域（２４）に更新すると共に、第２ポインタ値を、時系列で次のログの記憶領域（２５）を示すように進めて更新する。
【００５７】
以下、データ比較部１０２と、差分比較部１０３とは、同様に処理を続ける。これにより、情報処理装置１及び情報処理プログラムは、第１ログ記憶部１１１や第２ログ記憶部１１２のように、前回のログの記憶領域と、今回のログの記憶領域とを固定しなくても、第１の実施形態と同様の処理を実行することができる。
【００５８】
次に、情報処理装置１ａの動作を説明する。
図８は、第２の実施形態における、情報処理装置１ａの動作例を示すフローチャートである。
実行部１０１は、バッファ部１１３に、今回のログを追記する（ステップＳ２０１）。
実行部１０１は、バッファ部１１３にログを追記した回数が所定回数以上であるか否かを判定する（ステップＳ２０２）。バッファ部１１３にログを追記した回数が所定回数以上でない場合（ステップＳ２０２：ＮＯ）、実行部１０１は、ステップＳ２０１に処理を戻す。
【００５９】
一方、バッファ部１１３にログを追記した回数が所定回数以上である場合（ステップＳ２０２：ＹＥＳ）、データ比較部１０２は、バッファ部１１３に記憶された前回のログのデータと、バッファ部１１３に記憶された今回のログのデータとがタイムスタンプ以外の項目で異なるか否かを判定する（ステップＳ２０３）。データ比較部１０２が、前回のログのデータと、今回のログのデータとがタイムスタンプ以外の項目で異なると判定しなかった場合（ステップＳ２０３：ＮＯ）、差分比較部１０３は、バッファ部１１３に記憶された前回のログのタイムスタンプと、バッファ部１１３に記憶された今回のログのタイムスタンプとの差分が、予め定められた閾値未満であるか否かを判定する（ステップＳ２０４）。
【００６０】
前回のログのタイムスタンプと、今回のログのタイムスタンプとの差分が、閾値未満である場合（ステップＳ２０４：ＹＥＳ）、差分比較部１０３は、前回のログ及び今回のログが類似の事象により発生したログである判定し、バッファ部１１３に記憶された前回のログのタイムスタンプと、バッファ部１１３に記憶された今回のログのタイムスタンプとの差分を、不揮発性記憶装置１２（ログ出力エリア）に記憶させる。
【００６１】
さらに、差分比較部１０３は、マスク情報に基づいて比較対象とされた項目のデータを、不揮発性記憶装置１２に記憶させてもよい（ステップＳ２０５）。実行部１０１は、前述した手法により、前回のログの記憶領域を示すポインタ値と、今回のログの記憶領域を示すポインタ値との一方又は双方を更新する（ステップＳ２０６）。
【００６２】
データ比較部１０２又は差分比較部１０３は、ログを比較した回数が所定回数以上であるか否かを判定する。この所定回数は、例えば、ステップＳ２０２でバッファ部１１３にログを追記した回数と同じでもよい。ログを比較した回数が所定回数未満である場合（ステップＳ２０７：ＮＯ）、データ比較部１０２と差分比較部１０３とは、ステップＳ２０３に処理を戻す。一方、ログを比較した回数が所定回数以上である場合（ステップＳ２０７：ＹＥＳ）、データ比較部１０２と差分比較部１０３とは、処理を終了する。
【００６３】
一方、データ比較部１０２が、前回のログのデータと、今回のログのデータとが異なると判定した場合（ステップＳ２０３：ＹＥＳ）、差分比較部１０３は、前回のログ及び今回のログが異なる事象により発生したログである判定し、バッファ部１１３に記憶された今回のログを、不揮発性記憶装置１２に記憶させる（ステップＳ２０８）。差分比較部１０３は、ステップＳ２０６に処理を進める。
【００６４】
前回のログのタイムスタンプと、今回のログのタイムスタンプとの差分が、閾値未満でない場合（ステップＳ２０４：ＮＯ）、差分比較部１０３は、前回のログ及び今回のログが異なる事象により発生したログである判定し、バッファ部１１３に記憶された今回のログを、不揮発性記憶装置１２に記憶させる（ステップＳ２０８）。差分比較部１０３は、ステップＳ２０６に処理を進める。
【００６５】
以上のように、情報処理装置１ａは、実行部１０１と、データ比較部１０２とを備える。実行部１０１は、アプリケーションプログラムを実行し、アプリケーションプログラムの実行に伴って生成されるログであって、生成された時刻を示す時刻情報が付与されたログを記憶装置１１のバッファ部１１３に記憶させる。データ比較部１０２は、記憶装置１１のバッファ部１１３に記憶されたログのうち、第１の時刻情報が付与された前回のログと、第１の時刻情報よりも新しい第２の時刻情報が付与された今回のログと、を時刻情報以外について比較し、前回のログと今回のログとが時刻情報以外で異なると判定した場合、今回のログを不揮発性記憶装置１２に記憶させる。
これにより、第２の実施形態に係る情報処理装置１ａ及び情報処理プログラムは、ログのファイルサイズを小さくすることができる。また、第２の実施形態に係る情報処理装置１ａ及び情報処理プログラムは、第１の実施形態に係る情報処理装置１及び情報処理プログラムと同様に効果を奏することができる。
【００６６】
以上説明した少なくともひとつの実施形態の情報処理装置１によれば、第１のログと第２のログとを時刻情報以外について比較し、第１のログと第２のログとが時刻情報以外で異なると判定した場合、第２のログを不揮発性記憶装置１２に記憶させるデータ比較部１０２を持つことにより、ログのファイルサイズを小さくすることができる。
【００６７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６８】
１、１ａ…情報処理装置、１０…制御装置、１１…記憶装置、１１ａ…記憶装置、１２…不揮発性記憶装置、１０１…実行部、１０２…データ比較部、１０３…差分比較部、１１１…第１ログ記憶部、１１２…第２ログ記憶部、１１３…バッファ部
【図１】
2015141472.tif 000003
【図２】
2015141472.tif 000004
【図３】
2015141472.tif 000005
【図４】
2015141472.tif 000006
【図５】
2015141472.tif 000007
【図６】
2015141472.tif 000008
【図７】
2015141472.tif 000009
【図８】
2015141472.tif 000010