(57)【要約】【課題】動作履歴情報の保存間隔に影響を与えることなく、揮発性記憶素子に一時保存されている動作履歴情報の喪失可能性を減少させる。【解決手段】未保存ログ処理部２０５は、前回のフラッシュメモリへのログ記録時刻から入力されたログの入力時刻までの経過時間が所定の時間間隔未満であるとき、入力されたログを揮発性記憶素子であるメモリに一時保存する。また、ログ記録処理部２０６は、イベントの入力が検出されたときに、メモリにログが一時保存されているときは、その一時保存ログをフラッシュメモリに記憶する。また、ログ記録処理部２０６は、上記経過時間が所定のログ間隔以上であると判定されたときに、メモリにログが一時保存されているときは、その一時保存ログを入力されたログと共にフラッシュメモリに記憶し、一時保存されていないときは、入力されたログをフラッシュメモリに記憶する。【選択図】図２
2011065513.tif 000002
【特許請求の範囲】
【請求項１】
所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、
動作履歴情報を入力する動作履歴情報入力手段と、
前記イベント及び前記動作履歴情報の入力を検出する検出手段と、
前記動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、
前記動作履歴情報を一時記憶するための、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、
前記不揮発性記憶素子に前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、
前記検出手段により前記動作履歴情報の入力が検出されたとき、前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、
前記経過時間判定手段により前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を前記揮発性記憶素子に一時保存する未保存情報記憶手段と、
前記検出手段により前記イベントの入力が検出されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を前記不揮発性記憶素子に記憶する第１の保存情報記憶手段と、
前記経過時間判定手段により前記経過時間が前記所定の時間間隔以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第２の保存情報記憶手段と
を有することを特徴とする動作履歴情報記憶装置。
【請求項２】
所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、
優先度情報が付加された動作履歴情報を入力する動作履歴情報入力手段と、
前記イベント及び前記動作履歴情報の入力を検出する検出手段と、
前記動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、
前記動作履歴情報を一時記憶するための、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、
前記不揮発性記憶素子に前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、
前記検出手段により前記動作履歴情報の入力が検出されたとき、前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、
入力された前記動作履歴情報の優先度情報が、前記不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、前記不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する優先度判定手段と、
前記経過時間判定手段により前記経過時間が前記所定の時間間隔未満であると判定されたとき、または前記経過時間判定手段により前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度より低いと判定されたときに、入力された前記動作履歴情報を前記揮発性記憶素子に一時保存する未保存情報記憶手段と、
前記検出手段により前記イベントの入力が検出されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を前記不揮発性記憶素子に記憶する第１の保存情報記憶手段と、
前記経過時間判定手段により前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第２の保存情報記憶手段と
を有することを特徴とする動作履歴情報記憶装置。
【請求項３】
所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、
優先度情報が付加された動作履歴情報を入力する動作履歴情報入力手段と、
前記イベント及び前記動作履歴情報の入力を検出する検出手段と、
前記動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、
前記動作履歴情報を一時保存するための、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、
前記不揮発性記憶素子に前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、
前記検出手段により前記動作履歴情報の入力が検出されたとき、入力された前記動作履歴情報の優先度情報が、前記不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、前記不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する優先度判定手段と、
前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度より低いと判定されたときに、前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、
前記経過時間判定手段により前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を前記揮発性記憶素子に一時保存する未保存情報記憶手段と、
前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶するか、または前記経過時間判定手段により前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第２の保存情報記憶手段と
を有することを特徴とする動作履歴情報記憶装置。
【請求項４】
所定処理の実行タイミングを示す情報であるイベントまたは動作履歴情報の入力を検出する第１のステップと、
前記第１のステップにより前記動作履歴情報の入力が検出されたときに、前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される所定回数の書き換えが可能な不揮発性記憶素子の前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第２のステップと、
前記第２のステップにより前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第３のステップと、
前記第１のステップにより前記イベントの入力が検出されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を前記不揮発性記憶素子に記憶する第４のステップと、
前記第２のステップにより前記経過時間が前記所定の時間間隔以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第５のステップと、
前記不揮発性記憶素子に前記記憶時刻情報を更新保存する第６のステップと
を含むことを特徴とする動作履歴情報記憶方法。
【請求項５】
所定処理の実行タイミングを示す情報であるイベントまたは優先度情報が付加された動作履歴情報の入力を検出する第１のステップと、
前記第１のステップにより前記動作履歴情報の入力が検出されたときに、前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される所定回数の書き換えが可能な不揮発性記憶素子の前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第２のステップと、
前記第２のステップにより前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第３のステップと、
前記第１のステップにより前記イベントの入力が検出されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を前記不揮発性記憶素子に記憶する第４のステップと、
入力された前記動作履歴情報の優先度情報が、前記不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、前記不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する第５のステップと、
前記第２のステップにより前記経過時間が前記所定の時間間隔未満であると判定されたとき、または前記第２のステップにより前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記第５のステップにより入力された前記動作履歴情報の優先度情報が前記所定の優先度より低いと判定されたときに、入力された前記動作履歴情報を前記揮発性記憶素子に一時保存する第６のステップと、
前記第２のステップにより前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記第５のステップにより入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第７のステップと、
前記不揮発性記憶素子に前記記憶時刻情報を更新保存する第８のステップと
を含むことを特徴とする動作履歴情報記憶方法。
【請求項６】
所定処理の実行タイミングを示す情報であるイベントまたは優先度情報が付加された動作履歴情報の入力を検出する第１のステップと、
前記第１のステップにより前記動作履歴情報の入力が検出されたときに、入力された前記動作履歴情報の優先度情報が、所定回数の書き換えが可能な不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、前記不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する第２のステップと、
前記第２のステップにより入力された前記動作履歴情報の優先度情報が前記所定の優先度より低いと判定されたときに、前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される前記不揮発性記憶素子の前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第３のステップと、
前記第３のステップにより前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第４のステップと、
前記第２のステップにより入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶するか、または前記第３のステップにより前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記第２のステップにより入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第５のステップと、
前記不揮発性記憶素子に前記記憶時刻情報を更新保存する第６のステップと
を含むことを特徴とする動作履歴情報記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動作履歴情報記憶装置及び動作履歴情報記憶方法に係り、特に装置の稼動状態などの動作履歴情報を不揮発性記憶素子に保存する動作履歴情報記憶装置及び動作履歴情報記憶方法に関する。
【背景技術】
【０００２】
従来、永続的なデータ保存が可能な不揮発性記憶素子として、フラッシュメモリなどの書き換え回数に制限がある記憶素子を持つ装置において、装置のエラー情報や警告情報などの稼動状態を表す動作履歴情報（以下、この情報を本明細書では「ログ」ともいう）をフラッシュメモリに保存することが行われる。
【０００３】
しかし、情報出力の度にフラッシュメモリに保存するとフラッシュメモリの寿命が短くなるため、特許文献１記載の記録方法では、フラッシュメモリに比べて書き換え回数が多いＲＡＭ（ランダム・アクセス・メモリ）などの揮発性記憶素子（以下、揮発性メモリともいう）にログを一時保存し、異常発生時や書き換え回数の制限を考慮した一定間隔で上記揮発性メモリに保存しているログをフラッシュメモリに記録することが行われる。
【０００４】
また、特許文献２には、転送されたデータを順次タイマーでタイミングを計りながら、各々フラグを備えたリンクで継いで中断なくメモリに書き戻しを行う書き戻し方式が開示されている。この書き戻し方式では、例えば、図１６（Ａ）に示す一定の時間間隔の時刻ｔ１、ｔ５、ｔ９、ｔ１３で、同図（Ｂ）にｅ１、ｅ２、ｅ３、ｅ４でそれぞれ模式的に示すようにタイマーイベントを発生させる。そして、図１６（Ｃ）にｉ１、ｉ２、ｉ３で模式的に示すように、タイマーイベントｅ１からｅ２までの一定時間間隔内に入力されたログを、揮発性メモリに図１６（Ｄ）にＬ１、Ｌ２、Ｌ３で模式的に示すように記憶した後、それらを記憶直後のタイマーイベントｅ２のタイミングで、図１６（Ｅ）に示すように、ログ記録領域であるメモリにそれぞれＳＬ１、ＳＬ２、ＳＬ３として書き戻す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１０８７１９号公報
【特許文献２】特開昭６４−７１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１記載の記録方法のように、異常検出後に揮発性メモリから不揮発性メモリにログを転送する方法では、電源異常などのハードウェア障害が発生しシステム動作不能となると、ログを転送することもできないため、ログが失われてしまう。
【０００７】
また、特許文献２記載の書き戻し方式では、図１６（Ｃ）に示すように、時刻ｔ１０で入力されたログｉ４を、揮発性メモリに同図（Ｄ）にＬ４で模式的に示すように記憶しても、その直後のタイマーイベントｅ４の発生時刻ｔ１３に到達する前に、装置に障害が発生した場合は、メモリに書き戻されずに、そのログは失われてしまう。特に、障害発生直前は障害発生原因となるエラーなどのログが出力されることが多いため、障害解析のためにもログの喪失可能性を減少させることが必要である。
【０００８】
本発明は以上の点に鑑みなされたもので、動作履歴情報を、揮発性記憶素子に一時記憶した後に不揮発性記憶素子に書き込むことで、不揮発性記憶素子への書き込み回数を抑制しつつ、揮発性記憶素子に一時記憶されている動作履歴情報の喪失可能性を減少させることが可能な動作履歴情報記憶装置及び動作履歴情報記憶方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、第１の発明の動作履歴情報記憶装置は、所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、動作履歴情報を入力する動作履歴情報入力手段と、イベント及び動作履歴情報の入力を検出する検出手段と、動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、動作履歴情報を一時記憶するための、所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、不揮発性記憶素子に動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、検出手段により動作履歴情報の入力が検出されたとき、記憶時刻情報が示す時刻から動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、経過時間判定手段により経過時間が所定の時間間隔未満であると判定されたときに、入力された動作履歴情報を揮発性記憶素子に一時保存する未保存情報記憶手段と、検出手段によりイベントの入力が検出されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を不揮発性記憶素子に記憶する第１の保存情報記憶手段と、経過時間判定手段により経過時間が所定の時間間隔以上であると判定されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された動作履歴情報と共に不揮発性記憶素子に記憶し、一時保存されていないときは、入力された動作履歴情報を不揮発性記憶素子に記憶する第２の保存情報記憶手段とを有することを特徴とする。
【００１０】
また、上記の目的を達成するため、第２の発明の動作履歴情報記憶装置は、所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、優先度情報が付加された動作履歴情報を入力する動作履歴情報入力手段と、イベント及び動作履歴情報の入力を検出する検出手段と、動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、動作履歴情報を一時記憶するための、所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、不揮発性記憶素子に動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、検出手段により動作履歴情報の入力が検出されたとき、記憶時刻情報が示す時刻から動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、入力された動作履歴情報の優先度情報が、不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する優先度判定手段と、経過時間判定手段により経過時間が所定の時間間隔未満であると判定されたとき、または経過時間判定手段により経過時間が所定の時間間隔以上であると判定され、かつ、優先度判定手段により入力された動作履歴情報の優先度情報が所定の優先度より低いと判定されたときに、入力された動作履歴情報を揮発性記憶素子に一時保存する未保存情報記憶手段と、検出手段によりイベントの入力が検出されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を不揮発性記憶素子に記憶する第１の保存情報記憶手段と、経過時間判定手段により経過時間が所定の時間間隔以上であると判定され、かつ、優先度判定手段により入力された動作履歴情報の優先度情報が所定の優先度以上であると判定されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された動作履歴情報と共に不揮発性記憶素子に記憶し、一時保存されていないときは、入力された動作履歴情報を不揮発性記憶素子に記憶する第２の保存情報記憶手段とを有することを特徴とする。
【００１１】
また、上記の目的を達成するため、第３の発明の動作履歴情報記憶装置は、所定処理の実行タイミングを示す情報であるイベントを発生するイベント発生手段と、優先度情報が付加された動作履歴情報を入力する動作履歴情報入力手段と、イベント及び前記動作履歴情報の入力を検出する検出手段と、動作履歴情報を記憶するための、所定回数の書き換えが可能な不揮発性記憶素子と、動作履歴情報を一時保存するための、前記所定回数よりも多い回数の書き換えが可能な揮発性記憶素子と、不揮発性記憶素子に前記動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新保存する時刻保存手段と、検出手段により前記動作履歴情報の入力が検出されたとき、入力された前記動作履歴情報の優先度情報が、前記不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、前記不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する優先度判定手段と、優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度より低いと判定されたときに、前記記憶時刻情報が示す時刻から前記動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する経過時間判定手段と、経過時間判定手段により前記経過時間が前記所定の時間間隔未満であると判定されたときに、入力された前記動作履歴情報を前記揮発性記憶素子に一時保存する未保存情報記憶手段と、優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶するか、または前記経過時間判定手段により前記経過時間が前記所定の時間間隔以上であると判定され、かつ、前記優先度判定手段により入力された前記動作履歴情報の優先度情報が前記所定の優先度以上であると判定されたときに、前記揮発性記憶素子に前記動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された前記動作履歴情報と共に前記不揮発性記憶素子に記憶し、一時保存されていないときは、入力された前記動作履歴情報を前記不揮発性記憶素子に記憶する第２の保存情報記憶手段とを有することを特徴とする。
【００１２】
また、上記の目的を達成するため、第４の発明の動作履歴情報記憶方法は、所定処理の実行タイミングを示す情報であるイベントまたは動作履歴情報の入力を検出する第１のステップと、第１のステップにより動作履歴情報の入力が検出されたときに、動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される所定回数の書き換えが可能な不揮発性記憶素子の記憶時刻情報が示す時刻から動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第２のステップと、第２のステップにより経過時間が所定の時間間隔未満であると判定されたときに、入力された動作履歴情報を、所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第３のステップと、第１のステップによりイベントの入力が検出されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を不揮発性記憶素子に記憶する第４のステップと、第２のステップにより経過時間が所定の時間間隔以上であると判定されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された動作履歴情報と共に不揮発性記憶素子に記憶し、一時保存されていないときは、入力された動作履歴情報を不揮発性記憶素子に記憶する第５のステップと、不揮発性記憶素子に記憶時刻情報を更新保存する第６のステップとを含むことを特徴とする。
【００１３】
また、上記の目的を達成するため、第５の発明の動作履歴情報記憶方法は、所定処理の実行タイミングを示す情報であるイベントまたは優先度情報が付加された動作履歴情報の入力を検出する第１のステップと、第１のステップにより動作履歴情報の入力が検出されたときに、動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される所定回数の書き換えが可能な不揮発性記憶素子の記憶時刻情報が示す時刻から動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第２のステップと、第２のステップにより経過時間が所定の時間間隔未満であると判定されたときに、入力された動作履歴情報を、所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第３のステップと、第１のステップによりイベントの入力が検出されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を不揮発性記憶素子に記憶する第４のステップと、入力された動作履歴情報の優先度情報が、不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する第５のステップと、第２のステップにより経過時間が所定の時間間隔未満であると判定されたとき、または第２のステップにより経過時間が所定の時間間隔以上であると判定され、かつ、第５のステップにより入力された動作履歴情報の優先度情報が所定の優先度より低いと判定されたときに、入力された動作履歴情報を揮発性記憶素子に一時保存する第６のステップと、第２のステップにより経過時間が所定の時間間隔以上であると判定され、かつ、第５のステップにより入力された動作履歴情報の優先度情報が所定の優先度以上であると判定されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された動作履歴情報と共に不揮発性記憶素子に記憶し、一時保存されていないときは、入力された動作履歴情報を不揮発性記憶素子に記憶する第７のステップと、不揮発性記憶素子に記憶時刻情報を更新保存する第８のステップとを含むことを特徴とする。
【００１４】
更に、上記の目的を達成するため、第６の発明の動作履歴情報記憶方法は、所定処理の実行タイミングを示す情報であるイベントまたは優先度情報が付加された動作履歴情報の入力を検出する第１のステップと、第１のステップにより動作履歴情報の入力が検出されたときに、入力された動作履歴情報の優先度情報が、所定回数の書き換えが可能な不揮発性記憶素子に優先的に記憶する閾値である設定優先度と、不揮発性記憶素子に記憶するかどうかを示す閾値である保存優先度とのうちの少なくともどちらか一方の所定の優先度より低いかどうかを判定する第２のステップと、第２のステップにより入力された動作履歴情報の優先度情報が所定の優先度より低いと判定されたときに、動作履歴情報を記憶した時刻を示す情報を記憶時刻情報として更新記憶される不揮発性記憶素子の記憶時刻情報が示す時刻から動作履歴情報の入力が検出された入力時刻までの経過時間を算出し、その経過時間が予め設定した所定の時間間隔未満であるか否かを判定する第３のステップと、第３のステップにより経過時間が所定の時間間隔未満であると判定されたときに、入力された動作履歴情報を所定回数よりも多い回数の書き換えが可能な揮発性記憶素子に一時保存する第４のステップと、第２のステップにより入力された動作履歴情報の優先度情報が所定の優先度以上であると判定されたときに、入力された動作履歴情報を不揮発性記憶素子に記憶するか、または第３のステップにより経過時間が所定の時間間隔以上であると判定され、かつ、第２のステップにより入力された動作履歴情報の優先度情報が所定の優先度以上であると判定されたときに、揮発性記憶素子に動作履歴情報が一時保存されているかどうかを確認し、一時保存されているときは、その一時保存動作履歴情報を入力された動作履歴情報と共に不揮発性記憶素子に記憶し、一時保存されていないときは、入力された動作履歴情報を不揮発性記憶素子に記憶する第５のステップと、不揮発性記憶素子に記憶時刻情報を更新保存する第６のステップとを含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、動作履歴情報を、揮発性記憶素子に一時記憶した後に不揮発性記憶素子に書き込むことで、不揮発性記憶素子への書き込み回数を抑制しつつ、揮発性記憶素子に一時記憶されている動作履歴情報の喪失可能性を減少させることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の動作履歴情報記憶装置の一実施の形態の全体構成を示すブロック図である。
【図２】図１中のＣＰＵの一実施の形態のブロック図である。
【図３】図２中のイベント発生部の動作の一例を示すフローチャートである。
【図４】本発明の動作履歴情報記憶装置の第１の実施の形態の動作説明用フローチャートである。
【図５】本発明の動作履歴情報記憶装置の第１の実施の形態の動作説明用タイミングチャートである。
【図６】本発明の動作履歴情報記憶装置の第２の実施の形態の動作説明用フローチャートである。
【図７】本発明の動作履歴情報記憶装置の第２の実施の形態の動作説明用タイミングチャートである。
【図８】本発明の動作履歴情報記憶装置の第３の実施の形態の動作説明用フローチャートである。
【図９】本発明の動作履歴情報記憶装置の第３の実施の形態の動作説明用タイミングチャートである。
【図１０】本発明の動作履歴情報記憶装置の第４の実施の形態の動作説明用フローチャートである。
【図１１】本発明の動作履歴情報記憶装置の第４の実施の形態の動作説明用タイミングチャートである。
【図１２】本発明の動作履歴情報記憶装置の第５の実施の形態の動作説明用フローチャートである。
【図１３】本発明の動作履歴情報記憶装置の第６の実施の形態の動作説明用フローチャートである。
【図１４】本発明の動作履歴情報記憶装置の第２の実施の形態と第３の実施の形態の動作の相違を説明するタイミングチャートである。
【図１５】本発明の動作履歴情報記憶装置の第２の実施の形態と第４の実施の形態の動作の相違を説明するタイミングチャートである。
【図１６】特許文献２記載の従来方法の動作の一例を説明するタイミングチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明になる動作履歴情報記憶装置の一実施の形態の全体構成のブロック図を示す。本実施の形態の動作履歴情報記憶装置１００は、中央処理装置（ＣＰＵ）１０１と、不揮発性記憶素子の一例のフラッシュメモリ１０２と、揮発性記憶素子の一例のＲＡＭ等のメモリ１０３とが、互いに外部メモリバス１１０に接続された構成である。フラッシュメモリ１０２は、所定回数の書き換えが可能な不揮発性記憶素子であり、電源断後も永続的なデータ保存が可能である。一方、メモリ１０３は、少なくともフラッシュメモリ１０２の書き換え回数よりも多い回数の書き換えが可能で、実質上書き換え回数には制限がないが、電源断により保存データが消失する揮発性記憶素子である。
【００１９】
図２は、ＣＰＵ１０１の一実施の形態のブロック図を示す。同図に示すように、ＣＰＵ１０１は、ログ入力部２０１とイベント発生部２０２、優先度判定部２０３及び経過時間判定部２０４からなる２つの判定部と、ログ処理部２００、未保存ログ処理部２０５及びログ記録処理部２０６からなる３つの処理部とから構成される。
【００２０】
ログ入力部２０１は、動作履歴情報記憶装置１００と接続された装置（図示せず）からログ（動作履歴情報）を入力する。
【００２１】
イベント発生部２０２は、所定処理の実行タイミングを示す情報として定期的な同期イベントや非同期イベントを発生してログ処理部２００へ出力する。
【００２２】
ログ処理部２００は、ログ入力部２０１からログが入力されたか否か、及びイベント発生部２０２からイベントが入力されたか否かを判定処理する。
【００２３】
図３は、イベント発生部２０２でイベントとして周期タイマーを使用したときの処理のフローチャートを示す。図３において、イベント発生部２０２は、タイマーに設定された時刻まで待機する（ステップＳ１１）。タイマーに設定された時刻になると、イベント発生部２０２は、タイマーイベントを発生させる（ステップＳ１２）。以下、イベント発生部２０２は、上記の動作を繰り返す。
【００２４】
再び図２に戻って説明する。優先度判定部２０３は、ログ処理部２００からログを取得し、そのログに設定された優先度と予め設定された設定優先度とを比較し、ログに設定された優先度が設定優先度未満であるか否かを判定する。また、優先度判定部２０３は、ログ処理部２００からログを取得し、そのログが予め設定された保存優先度未満であるか否かを判定する。更に、優先度判定部２０３は、未保存ログ領域から未保存ログを取得し、その未保存ログに設定された優先度と予め設定された設定優先度とを比較し、未保存ログに設定された優先度が設定優先度未満であるか否かを判定する。
【００２５】
なお、優先度は、装置の動作にとって影響が重要なログほど優先度が高く設定される。例えば、ログがハードウェアの異常を示すクリティカルエラーの場合は最も優先度が高く設定される。また、ログがアプリケーションソフトやシステム動作の異常を示す深刻な動作継続性が危ぶまれるエラーはクリティカルエラーの次の優先度に設定される。更に、ログがシステムが回復可能な異常を示すウォーニングの場合は、上記のエラーの次の優先度に設定される。ログが不具合修正のために用いるデバッグなどの場合は、開発の時しか使わないので最も低い優先度に設定される。また、保存優先度は、後述するようにログ記録領域に記録するか否かの閾値を示す。
【００２６】
経過時間判定部２０４は、ログ記録処理部２０６から最後にログを記録したログ記録時刻を取得し、そのログ記録時刻から現在の時刻までの経過時間が所定のログ間隔より大きいかどうかを判定する。
【００２７】
未保存ログ処理部２０５は、メモリ１０３の記憶領域である未保存ログ領域に未保存ログが存在するかどうかを確認する。また、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未処理の未保存ログが存在するかどうかを確認し、未保存ログ領域に未保存ログが存在する場合は、その未保存ログのうち、優先度を確認していない未保存ログが存在するかを確認する。
【００２８】
ログ記録処理部２０６は、未保存ログ処理部２０５により存在を確認された未保存ログを未保存ログ領域から取得し、フラッシュメモリ１０２の記録領域であるログ記録領域に保存する。また、ログ記録処理部２０６は、ログ処理部２００からログを取得し、フラッシュメモリ１０２のログ記録領域に保存する。更に、ログ記録処理部２０６は、ログがログ記録領域に保存された最新の時刻である現在時刻をログ記録時刻として更新する。
【００２９】
（第１の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第１の実施の形態の動作について、図４のフローチャートと図５のタイミングチャートと共に説明する。
【００３０】
図２に示したイベント発生部２０２は、図５（Ａ）に示す時刻ｔ１、ｔ５、ｔ９、ｔ１３、ｔ１７、ｔ２１、ｔ２５で図５（Ｂ）に模式的に示すように定期的なタイマーイベントｅ１、ｅ２、ｅ３、ｅ４、ｅ５、ｅ６、ｅ７を発生する。なお、タイマーイベント発生時間間隔（ｔ５−ｔ１）、（ｔ９−ｔ５）、（ｔ１３−ｔ９）、（ｔ１７−ｔ１３）、（ｔ２１−ｔ１７）、（ｔ２５−ｔ２１）は同じ時間間隔である（以下、この時間間隔をログ間隔というものとする。）。このログ間隔は、書き換え回数に制限のあるフラッシュメモリ１０２の寿命を考慮して設定されている。一方、図２に示したログ処理部２００は、ログ入力待ちまたはイベント待ちの監視状態にある（ステップＳ２１）。
【００３１】
ログ処理部２００は、時刻ｔ１で図５（Ｂ）に示すタイマーイベントｅ１が入力されると、イベント受信を判断してその旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ２８）。このときには、未保存ログ領域には図５（Ｄ）に示すように未保存ログが存在しないので、未保存ログ処理部２０５は、未保存ログが存在しないとの判定結果を得る（ステップＳ２８のＮ）。そして、再びステップＳ２１の監視状態に戻る。
【００３２】
なお、ログ記録処理部２０６は、起動後最初に発生したタイマーイベントｅ１に対しては、その発生時刻に対応した時刻ＬＴ０を、図５（Ｆ）に示すようにログ記録時刻としてフラッシュメモリ１０２に記録する。
【００３３】
続いて、ログ処理部２００は、時刻ｔ２で図５（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ１が入力されると、その旨を経過時間判定部２０４に通知する。これにより経過時間判定部２０４は、前回のログ記録時刻ＬＴ０からログｉ１の入力時刻ｔ２までの経過時間を算出し、その経過時間が、一定のログ間隔未満であるかどうかを判定する（ステップＳ２２）。この時点では、経過時間判定部２０４は、経過時間がログ間隔未満であると判定し（ステップＳ２２のＹ）、その旨を未保存ログ処理部２０５に通知する。これにより、未保存ログ処理部２０５は、入力されたログｉ１を図５（Ｄ）に模式的に示すように、Ｌ１としてメモリ１０３の未保存ログ領域に保存する（ステップＳ２３）。
【００３４】
続いて、図５（Ｃ）に示すように時刻ｔ３で入力されるログｉ２、及び時刻ｔ４で入力されるｉ３に対しては、ログｉ１入力時と同様の条件が成立するので、ログｉ１入力時と同様の処理が行われる。これにより、未保存ログ領域には、図５（Ｄ）に模式的に示すように、Ｌ２、Ｌ３が順次に保存される。
【００３５】
続いて、時刻ｔ５で図５（Ｂ）に模式的に示すようにイベント発生部２０２でタイマーイベントｅ２が発生して、ログ処理部２００に入力されると、ログ処理部２００はステップＳ２１でイベント受信を判断して、その旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ２８）。このときには、未保存ログ領域には図５（Ｄ）に示すように未保存ログＬ１、Ｌ２及びＬ３が存在するので、未保存ログの存在を確認する（ステップＳ２８のＹ）。ログ記録処理部２０６は、未保存ログ処理部２０５の確認結果に基づき、未保存ログＬ１、Ｌ２及びＬ３をメモリ１０３から読み出してフラッシュメモリ１０２のログ記録領域に、図５（Ｅ）に模式的に示すようにＳＬ１、ＳＬ２及びＳＬ３として記録する（ステップＳ２９）。続いて、ログ記録処理部２０６は、ログ記録時刻を図５（Ｆ）に示すようにＬＴ１に更新する（ステップＳ２７）。
【００３６】
続いて、時刻ｔ９で図５（Ｂ）に模式的に示すようにイベント発生部２０２でタイマーイベントｅ３が発生して、ログ処理部２００に入力されると、ログ処理部２００はステップＳ２１でイベント受信を判断して、その旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ２８）。このときには、未保存ログ領域には図５（Ｄ）に示すように未保存ログが存在しないので、ログ処理部２００はこの判定結果に基づき（ステップＳ２８のＮ）、再びステップＳ２１の監視状態に戻る。
【００３７】
その後、時刻ｔ９で図５（Ｂ）に模式的に示すように入力されるタイマーイベントｅ３に対しては、ステップＳ２１、Ｓ２８のＮの各処理が行われ、何の記録も行われず、ログ処理部２００は、再びステップＳ２１の監視状態に戻る。
【００３８】
続いて、ログ処理部２００は、時刻ｔ１０で図５（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ４が入力されると、その旨を経過時間判定部２０４に通知する。これにより経過時間判定部２０４は、前回のログ記録時刻ＬＴ１からログｉ４の入力時刻ｔ１０までの経過時間ｅｔ１を算出し、その経過時間ｅｔ１が、一定のログ間隔未満であるかどうかを判定する（ステップＳ２２）。経過時間判定部２０４は、経過時間ｅｔ１がログ間隔以上であると判定し（ステップＳ２２のＮ）、その旨を未保存ログ処理部２０５に通知する。
【００３９】
これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ２４）。このときには、未保存ログ領域には図５（Ｄ）に示すように未保存ログが存在しないという確認結果が得られる（ステップＳ２４のＮ）。ログ記録処理部２０６は、上記の確認結果に基づいて、入力されたログｉ４をフラッシュメモリ１０２のログ記録領域に、図５（Ｅ）に模式的に示すようにＳＬ４として記録する（ステップＳ２６）。続いて、ログ記録処理部２０６は、ログ記録時刻を図５（Ｆ）に示すようにＬＴ２に更新する（ステップＳ２７）。
【００４０】
次に、図５（Ｃ）に模式的に示すように時刻ｔ１１で入力されるログｉ５、及び時刻ｔ１２で入力されるログｉ６に対しては、ログｉ１入力時と同様の条件が成立するので、ログｉ１入力時と同様の処理が行われる。これにより、未保存ログ領域には、図５（Ｄ）に模式的に示すように、Ｌ４、Ｌ５が順次に保存される。
【００４１】
次の時刻ｔ１３で図５（Ｂ）に模式的に示すように入力されるタイマーイベントｅ４に対しては、タイマーイベントｅ２入力時と同様の条件が成立するので、タイマーイベントｅ２入力時と同様の処理が行われる。これにより、ログ記録処理部２０６は、未保存ログＬ４、Ｌ５を、図５（Ｅ）に模式的に示すようにログＳＬ５、ＳＬ６としてログ記録領域に記録すると共に、ログ記録時刻を図５（Ｆ）に模式的に示すようにＬＴ３に更新する。
【００４２】
その後、時刻ｔ１７で発生したタイマーイベントｅ５、時刻ｔ２１で発生したタイマーイベントｅ６に対しては、タイマーイベントｅ３入力時と同様の条件が成立するので、タイマーイベントｅ３入力時と同様の処理が行われる。また、時刻ｔ１９で入力されるログｉ７に対しては、ログｉ４入力時と同様の条件が成立するので、ログｉ４入力時と同様の処理が行われる。これにより、ログｉ４は未保存領域に記録されることなく、図５（Ｅ）に模式的に示すように直接にログ記録領域にＳＬ７として記録される。また、このときのログ記録時刻が図５（Ｆ）に示すようにＬＴ４に更新される。
【００４３】
図５（Ｃ）に模式的に示すように時刻ｔ２２で入力されるログｉ８に対しては、ログｉ１入力時と同様の条件が成立するので、ログｉ１入力時と同様の処理が行われる。これにより、未保存ログ領域には、図５（Ｄ）に模式的に示すように、Ｌ６が保存される。
【００４４】
続いて、ログ処理部２００は、時刻ｔ２４で図５（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ９が入力されると、その旨を経過時間判定部２０４に通知する。これにより経過時間判定部２０４は、前回のログ記録時刻ＬＴ４からログｉ９の入力時刻ｔ２４までの経過時間ｅｔ３を算出し、その経過時間ｅｔ３が、一定のログ間隔未満であるかどうかを判定する（ステップＳ２２）。経過時間判定部２０４は、経過時間ｅｔ１がログ間隔未満であると判定し（ステップＳ２２のＹ）、その旨を未保存ログ処理部２０５に通知する。
【００４５】
これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ２４）。このときには、未保存ログ領域には図５（Ｄ）に示すように未保存ログＬ６が存在するという確認結果が得られる（ステップＳ２４のＹ）。ログ記録処理部２０６は、上記の確認結果に基づいて、未保存ログＬ６をメモリ１０３から読み出してフラッシュメモリ１０２のログ記録領域に、図５（Ｅ）に模式的に示すようにＳＬ８として記録する（ステップＳ２５）。続いて、ログ記録処理部２０６は、入力されたログｉ９をフラッシュメモリ１０２のログ記録領域に、図５（Ｅ）に模式的に示すようにＳＬ９として記録する（ステップＳ２６）。更に、ログ記録処理部２０６は、ログ記録時刻を図５（Ｆ）に示すようにこのときのログ記録時刻ＬＴ５に更新する（ステップＳ２７）。
【００４６】
これにより、本実施の形態によれば、例えば、図５（Ａ）に示す時刻ｔ２５で障害が発生しても、障害発生直前の時刻ｔ２４の時点でログ入力ｉ８、ｉ９はログ記録領域にＳＬ８、ＳＬ９として保存されているため、ログが失われることはない。
【００４７】
このように、本実施の形態によれば、フラッシュメモリ１０２のログ記録領域への記録間隔は必ずログ間隔以上となるため、ログ間隔で想定されるログ記録領域の書換え回数に影響を与えることなく、またログ入力時に直前のログ記録領域の記録時刻からそのログ入力時刻までの経過時間がログ間隔以上あいているときには、未保存ログ領域ではなく、ログ記録領域に入力ログを直接に記録するようにしたため、従来に比べてログがメモリ１０３の未保存領域に保存されている期間を短縮することができ、それにより障害によってログが喪失する割合を従来よりも低減することができる。
【００４８】
（第２の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第２の実施の形態の動作について、図６のフローチャートと図７のタイミングチャートと共に説明する。
【００４９】
図２に示したイベント発生部２０２は、図７（Ａ）に示す一定の時間間隔（ログ間隔）の時刻ｔ１、ｔ５、ｔ９、ｔ１３、ｔ１７で図７（Ｂ）に模式的に示すように定期的なタイマーイベントｅ１、ｅ２、ｅ３、ｅ４、ｅ５を発生する。一方、図２に示したログ処理部２００は、ログ入力待ちまたはイベント待ちの監視状態にある（ステップＳ３１）。
【００５０】
ログ処理部２００は、時刻ｔ１で図７（Ｂ）に示すタイマーイベントｅ１が入力されると、イベント受信を判断してその旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ４０）。このときには、未保存ログ領域には図７（Ｄ）に示すように未保存ログが存在しないので、未保存ログ処理部２０５は、未保存ログが存在しないとの判定結果を得る（ステップＳ４０のＮ）。そして、ステップＳ３１の監視状態に戻る。
【００５１】
なお、ログ記録処理部２０６は、起動後最初に発生したタイマーイベントｅ１に対しては、その発生時刻に対応した時刻ＬＴ０を、図７（Ｆ）に示すようにログ記録時刻としてフラッシュメモリ１０２に記録する。時刻ｔ５でタイマーイベントｅ２が入力された時も、タイマーイベントｅ１の入力時と同様の動作が行われる（ただし、ログ記録時刻の更新は行われない。）。
【００５２】
続いて、ログ処理部２００は、時刻ｔ６で図７（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ１ｐ７が入力されると、その旨を経過時間判定部２０４に通知する。ここで、「ｉ１ｐ７」は、優先度が「７」のログであることを示し、文字ｐの後の数値が大きいほど優先度が小さいことを示している。従って、後述するように優先度が設定優先度未満であるということは、その優先度の値が設定優先度の値よりも大きな値であり、優先度としては設定優先度よりも低いことを意味する。本実施の形態では、設定優先度を「５」として説明する。なお、優先度は数値の大小だけでなく、複数の識別子による判定も可能である。
【００５３】
経過時間判定部２０４は、前回のログ記録時刻ＬＴ０からログｉ１ｐ７の入力時刻ｔ６までの経過時間ｅｔ１を算出し、その経過時間ｅｔ１が、一定のログ間隔未満であるかどうかを判定する（ステップＳ３２）。この時点では、経過時間判定部２０４は、経過時間がログ間隔以上であると判定し（ステップＳ３２のＮ）、その旨を優先度判定部２０３に通知する。これにより、優先度判定部２０３は、入力されたログの優先度が設定優先度未満であるかどうかを判定する（ステップＳ３４）。ここでは、優先度判定部２０３は、入力されたログｉ１ｐ７の優先度は設定優先度未満であるとの判定結果を得る（ステップＳ３４のＹ）。
【００５４】
未保存ログ処理部２０５は、上記の優先度判定部２０３の判定結果に基づき、入力されたログｉ１ｐ７を図７（Ｄ）に模式的に示すように、Ｌ１Ｐ７としてメモリ１０３の未保存ログ領域に保存する（ステップＳ３５）。
【００５５】
続いて、図７（Ｃ）に示すように時刻ｔ９で入力されるタイマーイベントｅ３に基づき、ログ処理部２００がイベント受信と判断する（ステップＳ３１）。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ４０）。このときには、未保存ログ領域には図７（Ｄ）に示すように未保存ログＬ１Ｐ７が存在するとの確認結果が得られる。
【００５６】
ログ記録処理部２０６は、上記の確認結果に基づいて、入力されたログＬ１Ｐ７をフラッシュメモリ１０２のログ記録領域に、図７（Ｅ）に模式的に示すようにＳＬ１として記録する（ステップＳ４１）。続いて、ログ記録処理部２０６は、ログ記録時刻を図７（Ｆ）に示すようにＬＴ１に更新する（ステップＳ３９）。
【００５７】
次に、図５（Ｃ）に模式的に示すように時刻ｔ１３で入力されるタイマーイベントｅ４、同図（Ｃ）に模式的に示すように時刻ｔ１４で入力されるログｉ２ｐ６に対しては、上記のタイマーイベントｅ２、ログｉ１ｐ７の入力時と同様の処理が行われる。これにより、未保存ログ処理部２０５は、入力されたログｉ２ｐ６を図７（Ｄ）に模式的に示すように、Ｌ２ｐ６としてメモリ１０３の未保存ログ領域に保存する（ステップＳ３５）。
【００５８】
次に、図７（Ｃ）に模式的に示すように時刻ｔ１６でログｉ３ｐ３が入力されると、経過時間判定部２０４は、前回のログ記録時刻ＬＴ１からログｉ３ｐ３の入力時刻ｔ１６までの経過時間ｅｔ３を算出し、その経過時間ｅｔ３が、一定のログ間隔未満であるかどうかを判定する（ステップＳ３２）。この時点では、経過時間判定部２０４は、経過時間がログ間隔以上であると判定し（ステップＳ３２のＮ）、その旨を優先度判定部２０３に通知する。これにより、優先度判定部２０３は、入力されたログの優先度が設定優先度未満であるかどうかを判定する（ステップＳ３４）。ここでは、優先度判定部２０３は、入力されたログｉ３ｐ３の優先度は設定優先度以上であるとの判定結果を得る（ステップＳ３４のＮ）。
【００５９】
未保存ログ処理部２０５は、上記の優先度判定部２０３の判定結果に基づき、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ３６）。このときには、未保存ログ領域には図７（Ｄ）に示すように未保存ログＬ２Ｐ６が存在するとの確認結果が得られる。ログ記録処理部２０６は、上記の確認結果に基づいて、メモリ１０３に保存されている未保存ログＬ２Ｐ６を読み出して、フラッシュメモリ１０２のログ記録領域に、図７（Ｅ）に模式的に示すようにＳＬ２として記録する（ステップＳ３７）。続いて、ログ記録処理部２０６は、入力されたログｉ３ｐ３をフラッシュメモリ１０２のログ記録領域に、図７（Ｅ）に模式的に示すようにＳＬ３として記録する（ステップＳ３８）。更に、ログ記録処理部２０６は、ログ記録時刻を図７（Ｆ）に示すようにこのときのログ記録時刻ＬＴ２に更新する（ステップＳ３９）。
【００６０】
これにより、本実施の形態によれば、例えば、図７（Ａ）に示す時刻ｔ１７で障害が発生しても、障害発生直前の時刻ｔ１６の時点でログ入力ｉ２ｐ６、ｉ３ｐ３はログ記録領域にＳＬ２、ＳＬ３として保存されているため、ログが失われることはない。
【００６１】
このように、本実施の形態によれば、書き換え回数に制限のあるフラッシュメモリ１０２の寿命を考慮して設定されたログ間隔に影響を与えることなく一時保存されているログの喪失可能性を減少させる効果と、重要度に応じて優先度付けされたログのうち設定優先度以上のログの喪失可能性を減少させる効果を得ることができる。
【００６２】
また、本実施の形態によれば、上記経過時間がログ間隔以上あいているときの入力ログのうち、優先度が設定優先度以上の高い優先度である入力ログのみログ記録領域に直接に記録するようにしたため、第１の実施の形態に比べてログ記録領域の書換え回数を少なくすることができる。
【００６３】
（第３の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第３の実施の形態の動作について、図８のフローチャートと図９のタイミングチャートと共に説明する。本実施の形態は、第２の実施の形態がログ入力時にまず経過時間を確認した後、経過時間がログ間隔以上の入力ログの優先度を確認するようにしていたのに対し、ログ入力時にまず入力されたログの優先度を確認した後、設定優先度未満の入力ログの経過時間を確認する点で異なる。本実施の形態では、設定優先度を「５」として説明する。なお、優先度は数値の大小だけでなく、複数の識別子による判定も可能である。
【００６４】
図２に示したイベント発生部２０２は、図９（Ａ）に示す一定の時間間隔（ログ間隔）の時刻ｔ１、ｔ５、ｔ９、ｔ１３、ｔ１７で図９（Ｂ）に模式的に示すように定期的なタイマーイベントｅ１、ｅ２、ｅ３、ｅ４、ｅ５を発生する。一方、図２に示したログ処理部２００は、ログ入力待ちまたはイベント待ちの監視状態にある（ステップＳ５１）。
【００６５】
ログ処理部２００は、時刻ｔ１で図９（Ｂ）に示すタイマーイベントｅ１が入力されると、イベント受信を判断してその旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ５９）。このときには、未保存ログ領域には図９（Ｄ）に示すように未保存ログが存在しないので、未保存ログ処理部２０５は、未保存ログが存在しないとの判定結果を得る（ステップＳ５９のＮ）。そして、再びステップＳ５１の監視状態に戻る。
【００６６】
なお、ログ記録処理部２０６は、起動後最初に発生したタイマーイベントｅ１に対しては、その発生時刻に対応した時刻ＬＴ０を、図９（Ｆ）に示すようにログ記録時刻としてフラッシュメモリ１０２に記録する。時刻ｔ５でタイマーイベントｅ２が入力された時も、タイマーイベントｅ１の入力時と同様の動作が行われる（ただし、ログ記録時刻の更新は行われない。）。
【００６７】
続いて、ログ処理部２００は、時刻ｔ８で図９（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ１ｐ７が入力されると、その旨を優先度判定部２０３に通知する。優先度判定部２０３は、入力されたログの優先度が設定優先度未満であるかどうかを判定する（ステップＳ５２）。ここでは、優先度判定部２０３は、入力されたログｉ１ｐ７の優先度は設定優先度未満であるとの判定結果を得る（ステップＳ５２のＹ）。
【００６８】
経過時間判定部２０４は、優先度判定部２０３の上記の判定結果があると、前回のログ記録時刻ＬＴ０からログｉ１ｐ７の入力時刻ｔ８までの経過時間ｅｔ１を算出し、その経過時間ｅｔ１が、一定のログ間隔未満であるかどうかを判定する（ステップＳ５３）。この時点では、経過時間判定部２０４は、経過時間がログ間隔以上であると判定する（ステップＳ５３のＮ）。
【００６９】
未保存ログ処理部２０５は、上記の経過時間判定部２０４の判定結果があると、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ５５）。このときには、未保存ログ領域には図９（Ｄ）に示すように未保存ログが存在しないとの判定結果が得られる（ステップＳ５５のＮ）。ログ記録処理部２０６はこの判定結果に基づき、入力されたログｉ１ｐ７を図９（Ｅ）に模式的に示すように、ＳＬ１としてログ記録領域に記録する（ステップＳ５７）。続いて、ログ記録処理部２０６は、ログ記録時刻を図９（Ｆ）に示すようにこのときのログ記録時刻ＬＴ１に更新する（ステップＳ５８）。
【００７０】
その後の時刻ｔ９で図９（Ｂ）に示すようにタイマーイベントｅ３が入力され、タイマーイベントｅ２の入力時と同様の動作が行われる。続いて、ログ処理部２００は、時刻ｔ１０で図９（Ｃ）に模式的に示すように、ログ入力部２０１からのログｉ２ｐ６の入力を検出する（ステップＳ５１）。優先度判定部２０３は、ログ処理部２００に入力されたログｉ２ｐ６の優先度が設定優先度未満であるかどうかを判定する（ステップＳ５２）。ここでは、優先度判定部２０３は、入力されたログｉ２ｐ６の優先度は設定優先度未満であるとの判定結果を得る（ステップＳ５２のＹ）。
【００７１】
経過時間判定部２０４は、優先度判定部２０３の上記の判定結果があると、前回のログ記録時刻ＬＴ１からログｉ２ｐ６の入力時刻ｔ１０までの経過時間ｅｔ２を算出し、その経過時間ｅｔ２が、一定のログ間隔未満であるかどうかを判定する（ステップＳ５３）。この時点では、経過時間判定部２０４は、経過時間がログ間隔未満であると判定する（ステップＳ５３のＹ）。この判定結果に基づき、未保存ログ処理部２０５は入力されたログｉ２ｐ６を図９（Ｄ）に模式的に示すように、Ｌ２Ｐ６として未保存ログ領域に記録する（ステップＳ５４）。
【００７２】
続いて、ログ処理部２００は、時刻ｔ１１で図９（Ｃ）に模式的に示すように、ログ入力部２０１からのログｉ３ｐ３の入力を検出する（ステップＳ５１）。優先度判定部２０３は、ログ処理部２００に入力されたログｉ３ｐ３の優先度が設定優先度未満であるかどうかを判定する（ステップＳ５２）。ここでは、優先度判定部２０３は、入力されたログｉ３ｐ３の優先度は設定優先度以上であるとの判定結果を得る（ステップＳ５２のＮ）。
【００７３】
この場合は、経過時間判定部２０４の経過時間の判定結果を確認することなく、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ５５）。このときには、未保存ログ領域には図９（Ｄ）に示すように未保存ログＬ２Ｐ６が存在するとの判定結果が得られる（ステップＳ５５のＹ）。ログ記録処理部２０６はこの判定結果に基づき、未保存ログＬ２Ｐ６をメモリ１０３の未保存領域から読み出して、図９（Ｅ）に模式的に示すようにフラッシュメモリ１０２のＳＬ２としてログ記録領域に記録する（ステップＳ５６）。
【００７４】
続いて、ログ記録処理部は、入力されたログｉ３ｐ３を図９（Ｅ）に模式的に示すように、ＳＬ３としてログ記録領域に記録する（ステップＳ５７）。続いて、ログ記録処理部２０６は、ログ記録時刻を図９（Ｆ）に示すようにこのときのログ記録時刻ＬＴ２に更新する（ステップＳ５８）。
【００７５】
これにより、本実施の形態によれば、例えば、図９（Ａ）に示す時刻ｔ１２で障害が発生しても、障害発生直前の時刻ｔ１１の時点でログ入力ｉ２ｐ６、ｉ３ｐ３はログ記録領域にＳＬ２、ＳＬ３として保存されているため、ログが失われることはない。
【００７６】
このように、本実施の形態によれば、入力ログの優先度が設定優先度よりも高いときには、未保存ログ領域ではなく、ログ記録領域に直接に記録するようにしたため、ログ間隔で想定されるログ記録領域の書換え回数による影響よりも、その入力ログの保存を優先することができ、ログが喪失する割合を従来よりも低減することができる。
【００７７】
（第４の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第４の実施の形態の動作について、図１０のフローチャートと図１１のタイミングチャートと共に説明する。本実施の形態では、設定優先度を「５」として説明する。なお、優先度は数値の大小だけでなく、複数の識別子による判定も可能である。
【００７８】
図２に示したイベント発生部２０２は、図１１（Ａ）に示す一定の時間間隔（ログ間隔）の時刻ｔ１、ｔ５、ｔ９、ｔ１３、ｔ１７で図１１（Ｂ）に模式的に示すように定期的なタイマーイベントｅ１、ｅ２、ｅ３、ｅ４、ｅ５を発生する。一方、図２に示したログ処理部２００は、ログ入力待ちまたはイベント待ちの監視状態にある（ステップＳ７１）。
【００７９】
ログ処理部２００は、時刻ｔ１で図１１（Ｂ）に示すタイマーイベントｅ１が入力されると、イベント受信を判断してその旨を未保存ログ処理部２０５及びログ記録処理部２０６に通知する。これにより、未保存ログ処理部２０５は、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ７９）。このときには、未保存ログ領域には図１１（Ｄ）に示すように未保存ログが存在しないので、未保存ログ処理部２０５は、未保存ログが存在しないと判定する（ステップＳ７９のＮ）。そして、再びステップＳ７１の監視状態に戻る。
【００８０】
なお、ログ記録処理部２０６は、起動後最初に発生したタイマーイベントｅ１に対しては、その発生時刻に対応した時刻ＬＴ０を、図１１（Ｆ）に示すようにログ記録時刻としてフラッシュメモリ１０２に記録する。
【００８１】
続いて、ログ処理部２００は、時刻ｔ４で図１１（Ｃ）に模式的に示すように、ログ入力部２０１からログｉ１ｐ７が入力されると、その旨を優先度判定部２０３に通知する。優先度判定部２０３は、入力されたログの優先度が設定優先度未満であるかどうかを判定する（ステップＳ７２）。ここでは、優先度判定部２０３は、入力されたログｉ１ｐ７の優先度は設定優先度未満であるとの判定結果を得る（ステップＳ７２のＹ）。
【００８２】
経過時間判定部２０４は、優先度判定部２０３の上記の判定結果があると、前回のログ記録時刻ＬＴ０からログｉ１ｐ７の入力時刻ｔ４までの経過時間ｅｔ１を算出し、その経過時間ｅｔ１が、一定のログ間隔未満であるかどうかを判定する（ステップＳ７３）。この時点では、経過時間判定部２０４は、経過時間ｅｔ１がログ間隔未満であると判定する（ステップＳ７３のＹ）。
【００８３】
未保存ログ処理部２０５は、上記の経過時間判定部２０４の判定結果があると、入力されたログｉ１ｐ７を図１１（Ｅ）に模式的に示すように、Ｌ１Ｐ７としてメモリ１０３の未保存ログ領域に記録する（ステップＳ７４）。
【００８４】
続いて、ログ処理部２００は、時刻ｔ５で発生するタイマーイベントｅ２が入力されたことを検出する（ステップＳ７１）。これにより、未保存ログ処理部２０５は、未保存領域に未保存ログが存在するかどうかを確認する（ステップＳ７９）。このときには、未保存ログ領域には図１１（Ｄ）に示すように未保存ログＬ１Ｐ７が存在するとの判定結果が得られる（ステップＳ７９のＹ）。
【００８５】
ログ記録処理部２０６はこの判定結果に基づき、未保存ログＬ１Ｐ７をメモリ１０３の未保存領域から読み出して、図１１（Ｅ）に模式的に示すようにフラッシュメモリ１０２のログ記録領域にＳＬ１として記録する（ステップＳ８０）。続いて、ログ記録処理部２０６は、ログ記録時刻を図１１（Ｆ）に示すようにこのときのログ記録時刻ＬＴ１に更新する（ステップＳ７８）。
【００８６】
その後の時刻ｔ９で図１１（Ｂ）に示すようにタイマーイベントｅ３が入力され、タイマーイベントｅ１の入力時と同様の動作が行われる。ただし、ログ記録時刻の更新は行われない。続いて、ログ処理部２００は、時刻ｔ１０で図１１（Ｃ）に模式的に示すように、ログ入力部２０１からのログｉ２ｐ６の入力を検出する（ステップＳ５１）。優先度判定部２０３は、ログ処理部２００に入力されたログｉ２ｐ６の優先度が設定優先度未満であるかどうかを判定する（ステップＳ７２）。ここでは、優先度判定部２０３は、入力されたログｉ２ｐ６の優先度は設定優先度未満であるとの判定結果を得る（ステップＳ７２のＹ）。
【００８７】
経過時間判定部２０４は、優先度判定部２０３の上記の判定結果があると、前回のログ記録時刻ＬＴ１からログｉ２ｐ６の入力時刻ｔ１０までの経過時間ｅｔ２を算出し、その経過時間ｅｔ２が、一定のログ間隔未満であるかどうかを判定する（ステップＳ７３）。この時点では、経過時間判定部２０４は、経過時間ｅｔ２がログ間隔以上であると判定する（ステップＳ７３のＮ）。
【００８８】
未保存ログ処理部２０５は、上記の経過時間判定部２０４の判定結果があると、メモリ１０３の未保存ログ領域に未保存ログが存在するかどうかを確認する（ステップＳ７５）。このときには、未保存ログ領域には図１１（Ｄ）に示すように未保存ログが存在しないとの判定結果が得られる（ステップＳ７５のＮ）。
【００８９】
ログ記録処理部２０６はこの判定結果に基づき、入力ログｉ２ｐ６を図１１（Ｅ）に模式的に示すようにフラッシュメモリ１０２のログ記録領域にＳＬ２として記録する（ステップＳ７７）。続いて、ログ記録処理部２０６は、ログ記録時刻を図１１（Ｆ）に示すようにこのときのログ記録時刻ＬＴ２に更新する（ステップＳ７８）。
【００９０】
続いて、ログ処理部２００は、時刻ｔ１１で図１１（Ｃ）に模式的に示すように、ログ入力部２０１からのログｉ３ｐ３の入力を検出する（ステップＳ７１）。すると、優先度判定部２０３は、ログ処理部２００に入力されたログｉ３ｐ３の優先度が設定優先度未満であるかどうかを判定する（ステップＳ７２）。ここでは、優先度判定部２０３は、入力されたログｉ３ｐ３の優先度は設定優先度以上であるとの判定結果を得る（ステップＳ７２のＮ）。
【００９１】
この場合は、経過時間判定部２０４による経過時間の判定結果と、未保存ログ処理部２０５による未保存ログ領域に未保存ログが存在するかどうかの確認結果を得ることなく、ログ記録処理部は、入力されたログｉ３ｐ３を図１１（Ｅ）に模式的に示すように、ＳＬ３としてログ記録領域に記録する（ステップＳ７７）。続いて、ログ記録処理部２０６は、ログ記録時刻を図１１（Ｆ）に示すようにこのときのログ記録時刻ＬＴ３に更新する（ステップＳ７８）。
【００９２】
これにより、本実施の形態によれば、例えば、図１１（Ａ）に示す時刻ｔ１２で障害が発生しても、障害発生直前の時刻ｔ１１の時点でログ入力ｉ２ｐ６、ｉ３ｐ３はログ記録領域にＳＬ２、ＳＬ３として保存されているため、ログが失われることはない。
【００９３】
このように、本実施の形態によれば、入力ログの優先度が設定優先度よりも高いときには、未保存ログ領域ではなく、ログ記録領域に直接に記録するようにしたため、ログ間隔で想定されるログ記録領域の書換え回数による影響よりも、その入力ログの保存を優先することができ、ログが喪失する割合を従来よりも低減することができる。
【００９４】
（第５の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第５の実施の形態の動作について、図１２のフローチャートと共に説明する。本実施の形態は、上述した第１〜第４の実施の形態におけるステップＳ２５、Ｓ２９、Ｓ３７、Ｓ４１、Ｓ５６、Ｓ６０、Ｓ７６、Ｓ８０の「未保存ログをログ記録領域に記録する」という処理を、図１２に示すフローチャートの処理に置き換えたものである。
【００９５】
すなわち、図１２に示すように、まず、未保存ログ処理部２０５が未保存ログ領域に未処理の未保存ログが存在するかどうかを確認する（ステップＳ９１）。未処理の未保存ログが存在する場合は、優先度判定部２０３がその未処理の未保存ログの優先度が保存優先度未満かどうかを判定する（ステップＳ９２）。
【００９６】
ここで、「保存優先度」は、前述した「設定優先度」とは異なり、ログ記録領域に記録するかどうかを示す閾値である。これに対し「設定優先度」は、ログ記録領域に優先的に記録する閾値である。従って、保存優先度未満のログはログ記録領域に記録されないが、設定優先度未満のログであってもログ記録領域に記録される。
【００９７】
ステップＳ９２で保存優先度以上であると判定されたときには、ログ記録処理部２０６が未保存ログをログ記録領域に記録する（ステップＳ９３）。ステップＳ９２で保存優先度未満であると判定されたとき、またはステップＳ９３の記録終了後、ステップＳ９１に戻る。未処理の未保存ログが存在しない場合は次の処理に移行する（ステップＳ９４）。
【００９８】
（第６の実施の形態）
次に、図１及び図２に示した構成の動作履歴情報記録装置の第６の実施の形態の動作について、図１３のフローチャートと共に説明する。本実施の形態は、上述した第１〜第４の実施の形態におけるステップＳ２６、Ｓ３８、Ｓ５７、Ｓ７７の「入力されたログをログ記録領域に記録する」という処理を、図１３に示すフローチャートの処理に置き換えたものである。
【００９９】
すなわち、図１３のフローチャートに示すように、まず、優先度判定部２０３が入力されたログが保存優先度未満であるかどうかを判定する（ステップＳ１０１）。続いて、ステップＳ１０１で入力されたログが保存優先度以上であると判定された場合に、ログ記録処理部２０６が入力されたログをログ記録領域に記録する（ステップＳ１０２）。
【０１００】
ステップＳ１０１で入力されたログが保存優先度未満であると判定された場合、またはステップＳ１０２でログ記録領域への記録が行われた場合は次の処理に移行する（ステップＳ１０３）。
【０１０１】
次に、各実施の形態の動作の相違について更に説明する。
【０１０２】
図１４は、第２の実施の形態と第３の実施の形態の動作の違いを説明するタイミングチャートを示す。図６のフローチャート及び図７のタイミングチャートと共に説明した第２の実施の形態では、ログｉ１ｐ７が図１４（Ａ）に示す時刻ｔ６で図１４（Ｃ）に模式的に示すように入力されたとき、ログｉ１ｐ７は設定優先度未満であるため、経過時間ｅｔ１がログ間隔以上あいていても図１４（Ｄ）に示すように未保存ログ領域にＬ１Ｐ７として保存される。その後に、時刻ｔ９で図１４（Ｂ）に模式的に示すようにタイマーイベントｅ３が発生すると、未保存ログＬ１Ｐ７が同図（Ｅ）に示すようにログ記録領域にＳＬ２として保存される。
【０１０３】
これに対し、図８のフローチャート及び図９のタイミングチャートと共に説明した第３の実施の形態では、ログｉ１ｐ７が図１４（Ａ）に示す時刻ｔ６で図１４（Ｃ）に模式的に示すように入力されたとき、経過時間ｅｔ１がログ間隔以上あいているため、ログｉ１ｐ７は優先度に関係なく、図１４（Ｅ）に示すようにログ記録領域にＳＬ１として直接保存される。
【０１０４】
このため、例えば図１４に示すように、ログｉ１ｐ７入力後でタイマーイベントｅ３発生以前の時刻ｔ８で障害が発生した場合、第２の実施の形態では、未保存ログ領域に未保存ログＬ１Ｐ７として記憶されていた入力ログｉ１ｐ７は失われる。しかし、第３の実施の形態ではログ記録領域にログＳＬ１として記録されている入力ログｉ１ｐ７は失われない。
【０１０５】
図１５は、第２の実施の形態と第４の実施の形態の動作の違いを説明するタイミングチャートを示す。図６のフローチャート及び図７のタイミングチャートと共に説明した第２の実施の形態では、設定優先度以上の優先度のログｉ３ｐ３が図１５（Ａ）に示す時刻ｔ１５で図１５（Ｃ）に模式的に示すように入力されたとき、経過時間ｅｔ３がログ間隔以上あいているため、図１５（Ｅ）に模式的に示すように、優先度に関係なく入力されたログｉ３ｐ３はＳＬ３としてログ記録領域に記録され、そのときに図１５（Ｄ）に示す未保存ログ領域にログＬ２Ｐ６として記録されている入力ログｉ２ｐ６も、ＳＬ２としてログ記録領域に記録される。
【０１０６】
これに対し、図１０のフローチャート及び図１１のタイミングチャートと共に説明した第４の実施の形態では、設定優先度以上の優先度のログｉ３ｐ３が図１５（Ａ）に示す時刻ｔ１５で図１５（Ｃ）に模式的に示すように入力されたとき、図１５（Ｅ）に模式的に示すように、優先度が設定優先度以上であるためログｉ３ｐ３のみがログ記録領域にＳＬ３として記録される。しかし、このとき未保存ログ領域に保存されている未保存ログＬ２Ｐ６はログ記録領域に記録されず、その後にタイマーイベントｅ３が発生した時に、図１５（Ｅ）に模式的に示すように、ログ記録領域にＳＬ４として記録される。
【０１０７】
このため、図１５において、ログｉ３ｐ３入力後でタイマーイベントｅ３発生以前の時刻ｔ１６で障害が発生した場合、第４の実施の形態では、未保存ログ領域に未保存ログＬ２Ｐ６として記録されていた入力ログｉ２ｐ６が失われる。しかし、第２の実施の形態では、入力ログｉ２ｐ６はＳＬ２として時刻ｔ１５にログ記録領域に記録されているため、上記の障害が発生しても失われない。
【０１０８】
なお、本発明は以上の実施の形態に限定されるものではなく、例えばフラッシュメモリ１０２以外の不揮発性記憶素子を使用したり、メモリ１０３としてＲＡＭ以外の揮発性記憶素子を使用することも可能である。ただし、揮発性記憶素子は不揮発性記憶素子に比べて書き換え回数が多いことが必要である。また、第１〜第４の実施の形態において、設定優先度に替えて保存優先度だけを使用してもよい。
【符号の説明】
【０１０９】
１００  動作履歴情報記録装置
１０１  中央処理装置（ＣＰＵ）
１０２  フラッシュメモリ
１０３  メモリ
１１０  外部メモリバス
２００  ログ処理部
２０１  ログ入力部
２０３  優先度判定部
２０４  経過時間判定部
２０５  未保存ログ処理部
２０６  ログ記録処理部
【図１】
2011065513.tif 000003
【図２】
2011065513.tif 000004
【図３】
2011065513.tif 000005
【図４】
2011065513.tif 000006
【図５】
2011065513.tif 000007
【図６】
2011065513.tif 000008
【図７】
2011065513.tif 000009
【図８】
2011065513.tif 000010
【図９】
2011065513.tif 000011
【図１０】
2011065513.tif 000012
【図１１】
2011065513.tif 000013
【図１２】
2011065513.tif 000014
【図１３】
2011065513.tif 000015
【図１４】
2011065513.tif 000016
【図１５】
2011065513.tif 000017
【図１６】
2011065513.tif 000018