JP2009223404A - ログローテーション制御装置およびログローテーション制御プログラム - Google Patents

ログローテーション制御装置およびログローテーション制御プログラム Download PDF

Info

Publication number
JP2009223404A
JP2009223404A JP2008064445A JP2008064445A JP2009223404A JP 2009223404 A JP2009223404 A JP 2009223404A JP 2008064445 A JP2008064445 A JP 2008064445A JP 2008064445 A JP2008064445 A JP 2008064445A JP 2009223404 A JP2009223404 A JP 2009223404A
Authority
JP
Japan
Prior art keywords
log
rotation
identifier
acquisition
file
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
JP2008064445A
Other languages
English (en)
Inventor
Shohei Fujimoto
勝平 藤本
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008064445A priority Critical patent/JP2009223404A/ja
Publication of JP2009223404A publication Critical patent/JP2009223404A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】組み込み系などでログ領域が制限されている場合であっても、ログローテーションとログの取得が重複して実行されること無く、ログファイルの整合性がとれている状態を維持することができるログローテーション制御装置およびログローテーション制御プログラムを提供することを目的とする。
【解決手段】組み込み機器は、ローテーション条件を満たしているかを確認し、当該ローテーション条件を満たしていた場合には第2識別子の値を書き換え、過去ログファイルの個数を確認し、過去ログファイルの個数が最大数であった場合には過去ログファイルを1つ削除し、残った過去ログファイルをリネームし、ロック状態を“占有”に書き換え、現行のログを圧縮して過去ファイルに格納し、現行ログファイルを削除し、ロック状態を“解放”に書き換え、第1識別子の値および第2識別子の値を書き換える。
【選択図】 図5

Description

本発明は、ログローテーション制御装置およびログローテーション制御プログラムに関する。
Linuxや商用UNIX(登録商標)では、ログのローテーション機能が標準で搭載される(例えば“syslog”や“newsyslog”の仕様参照)。当該ローテーションにより、ログは圧縮されて世代管理されるが、ある世代を超えたログは削除される。そのため、ログを定期的に取得(バックアップ、保管)することが必要となる。そこで、通常は、当該ローテーションと当該取得とをそれぞれ定時に毎日実行するなど、当該ローテーションと当該取得とが重複しないように設計される。
ここで、関連する従来技術としては、例えば特許文献1、特許文献2および特許文献3が挙げられる。特許文献1には、ロックファイルの使用が許される時のみ共通ファイルへのアクセスが許可されるファイルアクセス排他制御方式に関する技術が開示されている。特許文献2には、オフライン処理の実行時間帯を設定し、処理要求を区分けするオンライン排他ウェイト回避装置に関する技術が開示されている。特許文献3には、操作性を改善すると共に、障害原因特定のために有効なログを収集するログ収集装置、ログ収集プログラムおよび画像形成装置に関する技術が開示されている。
しかし、上記技術はログ領域が十分確保された環境を想定したものであるので、組み込み系などでログ領域が制限されている場合には、定期的にログローテーションを行うだけでなく、あるログ量に達した時点でログローテーションを行う必要がある。
特開昭61−194548号公報 特許第3641341号公報 特開2006−99745号公報
しかしながら、このような従来のやり方では、ログローテーションとログの取得が重複して実行される可能性があり、その結果、ログファイルの整合がとれなくなる可能性があるという問題点があった。
本発明は、上記問題点に鑑みてなされたものであって、組み込み系などでログ領域が制限されている場合であっても、ログローテーションとログの取得が重複して実行されること無く、ログファイルの整合性がとれている状態を維持することができるログローテーション制御装置およびログローテーション制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ログのローテーション処理を実行するログローテーション手段と前記ログの取得処理を実行するログ取得手段とを備えたログローテーション制御装置であって、前記ログローテーション手段および前記ログ取得手段を排他制御することを特徴とする。
また、本発明は、前記に記載の発明において、前記ローテーション処理の開始および終了を識別するための識別子および前記ローテーション処理中であるか否かを識別するための識別子からなるローテーション形跡ファイルを記録する記録手段をさらに備え、前記ログ取得手段が前記取得処理を実行している際、前記ログローテーション手段が前記ローテーション処理を実行しているか否かを前記記録手段で記録している前記ローテーション形跡ファイルを用いて監視し、当該監視において前記ログローテーション手段が前記ローテーション処理を実行していると検知した場合には前記取得処理をキャンセルさせるよう前記ログ取得手段を制御することを特徴とする。
また、本発明は、前記に記載の発明において、前記記録手段は、前記ローテーション形跡ファイルの代わりに、前記ログのロック状態を管理するログロックファイルを記録し、前記ログ取得手段が前記取得処理を実行している際、前記ログローテーション手段が前記ローテーション処理を実行しているか否かを前記記録手段で記録している前記ログロックファイルを用いて監視し、当該監視において前記ログローテーション手段が前記ローテーション処理を実行していると検知した場合には前記取得処理をキャンセルさせるよう前記ログ取得手段を制御することを特徴とする。
また、本発明は、ログのローテーション処理を実行するログローテーション手段と前記ログの取得処理を実行するログ取得手段とを備えたログローテーション制御装置に実行させるためのログローテーション制御プログラムであって、前記ローテーション制御装置に、前記ログローテーション手段および前記ログ取得手段を排他制御させることを特徴とする。
本発明によれば、ローテーション処理を実行するログローテーション手段と取得処理を実行するログ取得手段とを排他制御する。これにより、組み込み系などでログ領域が制限されている場合であっても、ログのローテーションとログの取得が重複して実行されること無く、その結果、ログファイルの整合性がとれている状態を維持することができるという効果を奏する。
また、本発明によれば、ログ取得手段が取得処理を実行している際、ログローテーション手段がローテーション処理を実行しているか否かを記録手段で記録しているローテーション形跡ファイルを用いて監視し、当該監視においてログローテーション手段がローテーション処理を実行していると検知した場合には取得処理をキャンセルさせるようログ取得手段を制御する。これにより、ログのローテーションが実行されているか否かを当該ローテーションの最短実行時間以下の間隔で監視することができ、その結果、ログの取得中に発生したローテーションを確実に検知することができるという効果を奏する。
また、本発明によれば、ログ取得手段が取得処理を実行している際、ログローテーション手段がローテーション処理を実行しているか否かを記録手段で記録しているログロックファイルを用いて監視し、当該監視においてログローテーション手段がローテーション処理を実行していると検知した場合には取得処理をキャンセルさせるようログ取得手段を制御する。これにより、ログの取得に時間を要する場合であっても、ログのローテーションを長時間待機させずに実行することができ、その結果、ログの記録を漏れなく実行することができるという効果を奏する。
以下に、添付図面を参照して、本発明にかかるログローテーション制御装置およびログローテーション制御プログラムの最良な実施の形態を詳細に説明する。なお、本発明は当該実施の形態により限定されるものではない。
[1.本実施の形態の構成]
ここでは、本実施の形態にかかる組み込み機器100の構成について図1を参照して詳細に説明する。図1は、組み込み機器100の構成を示す図である。
組み込み機器100は、具体的にはデジタル複合機(MFP)であり(以下では、組み込み機器100をMFP100と記す場合がある。)、外部記憶装置200と通信可能に接続されている。外部記憶装置200は、具体的にはMFP100と通信可能に接続されたサーバのHDD(Hard Disk Drive)やMFP100外部に設けられたSD(Secure Digital)カードなどであり、ログ等を格納する記録領域202を備えている。MFP100は、ログのローテーションを優先させる仕組みを実現するためのものであり、大別して、アプリケーション部102とログ記録部104とログローテーション部106とログ取得部108と記録部110とで構成されている。
アプリケーション部102は、MFP100を動作させる実行プログラム(本発明にかかるログローテーション制御プログラムを含む)を含んで構成されている。アプリケーション部102は、ログ記録部104へログの記録要求を出したり、ログ取得部108へログの取得要求を出したりする。
ログ記録部104は、アプリケーション部102から記録要求されたログを所定のフォーマットに合わせて整形し、整形したログを記録部110の現行ログファイル110aに格納する。
ログローテーション部106は、規定のログローテーション条件を監視し、当該規定のログローテーション条件を満たした場合にはログ(具体的には記録部110に格納されているログファイル)のローテーションを実行する。なお、ログローテーション部106は、ローテーション条件のチェックを、ログの記録回数で行ってもよい。これにより、ログ容量の超過を正確に検知することができる。また、ログローテーション部106は、ローテーション条件のチェックを、スレッドを立てて監視してもよい。これにより、当該チェックの回数を減らすことができ、その結果、処理を高速化することができる。
ログ取得部108は、アプリケーション部102からの取得要求を受け、アプリケーション部102から取得要求されたログを記録部110から取得し(読み出し)、取得したログを外部記憶装置200の記録領域202に格納する(書き出す)。
記録部110は、大別して、現行ログファイル110aと、予め定めた最大数N以下の個数の過去ログファイル110b〜110b(nは1以上N−1以下の整数である。)と、現行ログロックファイル110cと、ログローテーション形跡ファイル110dと、で構成されている。
現行ログファイル110aは、現在記録要求されたログ(具体的にはログ記録部104から送られてきたログ)を格納する。過去ログファイル110b〜110bはそれぞれ、ローテーションされた過去のログを格納する。現行ログロックファイル110cは、現行ログファイル110aのロック状態(例えばセマフォ変数など)を格納する。
ログローテーション形跡ファイル110dは、例えば数値や文字列や時刻などで表されるログローテーションの実行状態を格納する。具体的には、ログローテーション形跡ファイル110dは、ローテーションの開始と終了とを互いに異なる値で識別するための識別子(以下では第1識別子と記す場合がある。)の値およびローテーション中であるか否かを識別するための識別子(以下では第2識別子と記す場合がある。)の値を格納する。このように、2つの識別子を別々の種類の情報として用いることで、ログローテーションの実行状態を他者に解析され難くすることができたり、当該2つの識別子の効率のよい組み合わせを選ぶことができたりする。
ここで、第1識別子の値として、例えば図2に示すような互いに異なる数種類の値x,x,x,x,x,・・・を用意する。そして、用意したこれらの値を変動させることで、ローテーションの開始と終了をローテーションごとに区別可能に検知する。なお、第1識別子の値は、例えば数値でもよく、ファイル名などの文字列でもよく、時刻でもよい。第1識別子として数値を用いる場合、例えば第1識別子の初期値を“0”とし、1回目のローテーション終了時に第1識別子の値を“1”とし、2回目のローテーション終了時に第1識別子の値を“2”とするといった感じで、ローテーション終了時に第1識別子の値を1ずつインクリメントしてもよい。第1識別子として文字列を用いる場合、例えば第1識別子の初期値を“a”とし、1回目のローテーション終了時に第1識別子の値を“b”とし、2回目のローテーション終了時に第1識別子の値を“c”とする(なお、第1識別子の値を示すアルファベットが“z”に辿り着いた後はその値を例えば“aa”,“ab”,・・・などとする。)といった感じで、第1識別子の値を示すアルファベットをローテーション終了時に次のアルファベットに変更してもよい。第1識別子としてファイル名を用いる場合、ローテーション形跡ファイル110dのファイル名を利用してもよい。例えば、ファイル名に数字や文字などを混ぜ合わせたもの(例えば“rotation0.file”や“rotation1.file”など)を、第1識別子の値としてもよい。第1識別子として時刻を用いる場合、ローテーション形跡ファイル110dの更新時刻などを利用してもよい。例えば、ローテーション終了時に、第1識別子の値として当該終了時の時刻を設定してもよい。
また、第2識別子の値として、例えば図2に示すような互いに異なる最低2種類の値yおよびyを用意する。なお、第2識別子の値は、第1識別子と同様に数値や文字列や時刻でもよく、またフラグでもよい。第2識別子として数値を用いる場合、ローテーション開始時に第2識別子の値として奇数を設定し、ローテーション終了時に第2識別子の値として偶数を設定してもよい。第2識別子として文字列を用いる場合、ローテーション開始時に第2識別子の値として大文字のアルファベットを設定し、ローテーション終了時に第2識別子の値として小文字のアルファベットを設定してもよい。第2識別子としてファイル名を用いる場合、ローテーション形跡ファイル110dのファイル名を利用してもよい。例えば、ファイル名に数字や文字などを混ぜ合わせたもの(例えば“rotation0.file”や“rotation1.file”など)をローテーション開始時およびローテーション終了時に第2識別子の値として設定してもよい。第2識別子として時刻を用いる場合、ローテーション形跡ファイル110dの更新時刻などを利用してもよい。例えば、ローテーション開始時に第2識別子の値として当該開始時の時刻を設定し、予め決めた基準時刻をローテーション終了時に第2識別子の値として設定してもよい。第2識別子としてフラグを用いる場合、予め決めた2値の一方をローテーション開始時に第2識別子の値として設定し、もう一方をローテーション終了時に第2識別子の値として設定してもよい。例えば、第2識別子の値を、ローテーションの開始時に“true”と設定し、ローテーションの終了時に“false”と設定してもよい。
なお、例えばログ取得部108がログの取得を開始する時にローテーション実行中である場合や、ログ取得部108がログの取得を実行している際にローテーションの定期チェックがローテーション実行中に発生した場合は、第2識別子の値で検知する。また、例えばログ取得部108がログの取得を実行している際であってローテーションの定期チェック間隔中にローテーションが発生または完了した場合は、第1識別子の値で検知する。
ここで、上述した第1識別子および第2識別子を、図3に示す第3識別子のように1つにまとめてもよい。これにより、ローテーションの定期チェックを1種類の識別子で行うことができ、当該チェックを高速に実行することができる。
なお、第3識別子の値として、例えば図3に示すような互いに異なる数種類の値z,z,z,z,z,・・・を用意する。ここで、第3識別子の値は、第1識別子や第2識別子と同様に数値や文字列や時刻でもよい。第3識別子の値として数値を用いる場合、例えば、第3識別子の値として、初回のローテーションにおいては、ローテーション開始前を“0”に、ローテーション中を“−1”に、そしてローテーション終了時を“1”に設定してもよい。そして、第3識別子の値として、次回以降のローテーションにおいては、ローテーション中を“−1”で固定したまま、ローテーション開始時を“−1”に、そしてローテーション終了時を“2”に設定してもよい。つまり、第3識別子の値は、次回以降のローテーションにおいてはローテーション中を“−1”で固定したまま、ローテーション開始時および終了時をそれぞれ1ずつインクリメントしてもよい。なお、このような値の設定の仕方は、ローテーション形跡ファイル110dの中を読み書きするので計算コストが若干かかるものの、直感的に理解し易い。第3識別子の値としてファイル名などの文字列を用いる場合、例えばファイル名に上述した数値を付与したものを、第3識別子の値として設定してもよい。例えばファイル名に“rotate_0”や“rotate_1”などを付与したものを、第3識別子の値として設定してもよい。なお、このような値の設定の仕方は、ファイル名が変わると、チェックする計算コストが余計にかかるものの、直感的に理解し易い。第3識別子の値として時刻を用いる場合、例えば、ローテーション開始前、第3識別子の値として、初回のローテーションの場合は現時刻を設定し、次回以降のローテーション場合は前回のローテーションが終了した時刻を設定してもよい。そして、ローテーション中、第3識別子の値として、あり得ない規定時刻(例えば1980年1月1日など)を設定してもよい。そして、ローテーション終了時、第3識別子の値として、当該ローテーションが終了した時刻を設定してもよい。なお、このような値の設定の仕方は、多少理解しづらいものの、ファイルの更新時刻(例えばタイムスタンプ“mtime”)のみを参照すればよい(例えば“InputStream”や“OutputStream”などをオープンする必要がない)ので計算速度を高めることができる。
以上説明したように、MFP100によれば、当該MFP100内にログ取得部108を持つことで、当該MFP100内のログファイルを外部記憶装置200に転送することができる。また、MFP100によれば、現行ログロックファイル110cとローテーション形跡ファイル110dとを持つことで、ログファイルの排他制御およびローテーションを優先させる仕組みを実現することができる。
[2.本実施の形態の処理]
ここでは、本実施の形態にかかるMFP100が行うログ記録処理、ログローテーション処理およびログ取得処理について、図4から図6を参照して詳細に説明する。
まずは、ローテーションを優先させるログ記録処理について図4を参照して詳細に説明する。図4はログ記録処理の一例を示すフローチャートである。
まず、アプリケーション部102は、ログの記録要求をログ記録部104に出す(ステップSA−1)。
つぎに、ログ記録部104は、ステップSA−1で出した記録要求を受けると、生成されているログのフォーマットを整える(ステップSA−2)。
つぎに、ログ記録部104は、現行ログロックファイル110cに格納されている現行ログファイル110aのロック状態を確認する(ステップSA−3)。
つぎに、ログ記録部104は、ステップSA−3での確認の結果、ロック状態が“占有”であった場合(ステップSA−4:Yes)には、一定時間待機し(ステップSA−5)、ステップSA−3の処理を再び実行する。
つぎに、ログ記録部104は、ステップSA−3での確認の結果、ロック状態が“占有”でなかった場合(ステップSA−4:No)には、ステップSA−2でフォーマットを整えたログを現行ログファイル110aに格納する。
これにて、ログ記録処理の説明を終了する。
つぎに、ローテーションを優先させるログローテーション処理について図5を参照して詳細に説明する。図5はログローテーション処理の一例を示すフローチャートである。
まず、ログローテーション部106は、規定のローテーション条件を満たしているかを確認する(ステップSB−1)。具体的には、ログローテーション部106は、ログ記録部104でのログの記録を所定回数実行する度に、記録部110に格納されているファイルのサイズ(容量)をチェックする。このようなチェックの仕方により、一回のログ記録量がわかるため、規定ファイルサイズを超える確率を低くすることができる。また、具体的には、ログローテーション部106は、記録部110に格納されているファイルのサイズをチェックするスレッドを立てることで、当該サイズを定期的にチェックする。このようなチェックの仕方により、当該チェックの仕方を実現するための何らかの処理がログの毎回の記録ごとに入るわけではないので、チェックの頻度次第では処理速度を高めることができる。
つぎに、ログローテーション部106は、ステップSB−1での確認の結果が“満たしている”というものでなかった場合(ステップSB−2:No)には、ステップSB−1の処理を再び実行する。
つぎに、ログローテーション部106は、ステップSB−1での確認の結果が“満たしている”というものであった場合(ステップSB−2:Yes)には、ローテーション形跡ファイル110dに格納されている第2識別子の値を、ある規定値に書き換える(ステップSB−3)。
つぎに、ログローテーション部106は、記録部110に格納されている過去ログファイルの個数を確認する(ステップSB−4)。
つぎに、ログローテーション部106は、ステップSB−4での確認の結果、過去ログファイルの個数が最大数Nであった、具体的には記録部110に過去ログファイル110bから過去ログファイル110bN−1があった場合(ステップSB−5:Yes)には、当該過去ログファイル110bN−1を削除する(ステップSB−6)。
つぎに、ログローテーション部106は、ステップSB−6で過去ログファイル110bN−1を削除した後に記録部110に残されている過去ログファイル110b,110b,・・・,110bN−2の名称をそれぞれ順に、過去ログファイル110b,110b,・・・,110bN−1にリネームする(ステップSB−7)。
つぎに、ログローテーション部106は、現行ログロックファイル110cに格納されている現行ログファイル110aのロック状態を“占有”に書き換える(ステップSB−8)。
つぎに、ログローテーション部106は、現行ログファイル110aに格納されているログを圧縮し、圧縮した後のログを、改めて生成した過去ログファイル110bに格納する(ステップSB−9)。
つぎに、ログローテーション部106は、現行ログファイル110aを削除する(ステップSB−10)。
つぎに、ログローテーション部106は、現行ログロックファイル110cに格納されている現行ログファイル110aのロック状態を“解放”に書き換える(ステップSB−11)。
つぎに、ログローテーション部106は、ローテーション形跡ファイル110dに格納されている第1識別子の値および第2識別子の値を書き換える(ステップSB−12)。
これにて、ログローテーション処理の説明を終了する。
つぎに、ローテーションを優先させるログ取得処理について図6を参照して詳細に説明する。図6はログ取得処理の一例を示すフローチャートである。
まず、アプリケーション部102は、ログの取得要求をログ取得部108に出す(ステップSC−1)。
つぎに、ログ取得部108は、ステップSC−1で出した取得要求を受けると、ローテーション形跡ファイル110dに格納されている第2識別子の値が、ある規定値であるかを確認する(ステップSC−2)。
つぎに、ログ取得部108は、ステップSC−2での確認の結果が“ある規定値である”というものでなかった場合(ステップSC−3:No)には、ローテーション形跡ファイル110dに格納されている第1識別子の値を一時保持する(ステップSC−4)。なお、ログ取得部108は、ステップSC−2での確認の結果が“ある規定値である”というものであった場合(ステップSC−3:Yes)には、ログの取得をキャンセルすべく本ログ取得処理を終了する。
つぎに、ログ取得部108は、ステップSC−1で取得要求されたログの1つを、記録部110に格納されている過去ログファイルから読み出す(ステップSC−5)。
つぎに、ログ取得部108は、ステップSC−5で読み出したログを、外部記憶装置200の記録領域202に書き出す(ステップSC−6)。
つぎに、ログ取得部108は、ステップSC−1で取得要求された全てのログを、外部記憶装置200の記録領域202に書き出したかを確認する(ステップSC−7)。
つぎに、ログ取得部108は、ステップSC−7での確認の結果が“全て書き出した”というものでなかった場合(ステップSC−8:No)には、現時点のローテーション形跡ファイル110dに格納されている第2識別子の値が、ある規定値であるかを確認する(ステップSC−9)。なお、ログ取得部108は、ステップSC−7での確認の結果が“全て書き出した”というものであった場合(ステップSC−8:Yes)には、ステップSC−9からステップSC−12までの処理を実行後、ログの取得をキャンセルすべく本ログ取得処理を終了する。
つぎに、ログ取得部108は、ステップSC−9での確認の結果が“ある規定値である”というものでなかった場合(ステップSC−10:No)には、現時点のローテーション形式ファイル110dに格納されている第1識別子の値とステップSC−4で一時保持していた値とが違うかを確認する(ステップSC−11)。なお、ログ取得部108は、ステップSC−9での確認の結果が“ある規定値である”というものであった場合(ステップSC−10:Yes)には、ログの取得をキャンセルすべく本ログ取得処理を終了する。
つぎに、ログ取得部108は、ステップSC−11での確認の結果が“違う”というものでなかった場合(ステップSC−12:No)には、ステップSC−5の処理に戻り、“違う”というものであった場合(ステップSC−12:Yes)には、ログの取得をキャンセルすべく本ログ取得処理を終了する。
これにて、ログ取得処理の説明を終了する。
[3.本実施の形態のまとめ、及び他の実施の形態]
以上説明したように、MFP100によれば、ログのフォーマットを整え、ロック状態が“占有”であった場合には一定時間待機し、ロック状態が“占有”でなかった場合にはフォーマットを整えたログを現行ログファイル110aに格納する。
また、MFP100によれば、規定のローテーション条件を満たしているかを確認し、その確認の結果が“満たしている”というものであった場合には第2識別子の値を書き換える。そして、MFP100によれば、過去ログファイルの個数を確認し、その確認の結果、過去ログファイルの個数が最大数Nであった場合には最も古い過去ログファイル(過去ログファイル110bN−1)を削除し、削除後に記録部110に残っている過去ログファイルをリネームする。そして、MFP100によれば、ロック状態を“占有”に書き換え、現行ログファイル110aに格納されているログを圧縮して過去ログファイル110bに格納し、現行ログファイル110aを削除する。そして、MFP100によれば、ロック状態を“解放”に書き換え、第1識別子の値および第2識別子の値を書き換える。
また、MFP100によれば、第2識別子の値が規定値であるかを確認する。そして、MFP100によれば、その確認の結果が“規定値である”というものでなかった場合には、第1識別子の値を一時保持し、取得要求されたログの1つを過去ログファイルから読み出し、読み出したログを外部記憶装置200の記録領域202に書き出す。そして、MFP100によれば、取得要求された全てのログを、外部記憶装置200の記録領域202に書き出したかを確認する。そして、MFP100によれば、その確認の結果が“全て書き出した”というものでなかった場合には、現時点の第2識別子の値が規定値であるかを確認する。そして、MFP100によれば、その確認の結果が“規定値である”というものでなかった場合には、現時点の第1識別子の値と一時保持していた値とが違うかを確認する。そして、MFP100によれば、その確認の結果が“違う”というものでなかった場合には、ログを読み出す前記処理に戻る。
つまり、MFP100によれば、ログ記録部104やログローテーション部106、ログ取得部108を排他制御することにより、ログのローテーションに関する処理を優先して実行しながらログの記録やログの取得に関する処理を適宜実行する。
これまでは、組み込み系などでログ領域が制限されている場合、ログのローテーションを定期的に行うだけでなく、所定のログ量に達した時点でも行う必要がある。しかし、このようなタイミングでローテーションを行うとなると、ログのローテーションとログの取得とが重複して実行される可能性があり、結果としてログファイルの整合性が取れなくなる虞がある。そこで、本実施の形態にかかるMFP100によれば、ログのローテーションとログの取得に排他制御をかけることで、組み込み系などでログ領域が制限されている場合であっても、ログのローテーションとログの取得が重複して実行されること無く、その結果、ログファイルの整合性がとれている状態を維持することができる。
また、ログの取得に時間がかかる場合、単に排他制御をかけるだけでは、ログのローテーションが長時間待機させられて実行できなくなる虞がある。そして、組み込み系などではログ領域が制限されていることから、ログのローテーションが実行できないと、ログを記録することが困難となる(ログの記録漏れが生じる)虞があり、布いてはセキュリティを確保することが困難となる虞がある。そこで、本実施の形態にかかるMFP100によれば、ログの取得に時間を要する場合であっても、ログのローテーションを長時間待機させずに実行することができ、その結果、ログの記録を漏れなく実行することができる。
また、ログの取得中には、ログのローテーションが実行されたかを定期的(ある期間ごと)にチェックする必要があるが、このチェックの間隔(換言すると、チェックを実施していない時間)が長いとその間にローテーションが発生し完結する虞がある。また、このチェックの間隔の間にローテーションが発生し完結した場合、生成されたログロックファイルは削除されているので、ローテーションが発生したことを検知することが困難となる。そこで、本実施の形態にかかるMFP100によれば、ログのローテーションが実行されているか否かを当該ローテーションの最短実行時間以下の間隔で監視することができ、その結果、ログの取得中に発生したローテーションを確実に検知することができる。
また、本実施の形態にかかるMFP100で実行されるログローテーション制御プログラムは、ROM等に予め組み込まれて提供される。当該ログローテーション制御プログラムは、上述した各部(少なくともログローテーション部106およびログ取得部108)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからログローテーション制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、少なくともログローテーション部106およびログ取得部108が主記憶装置上に生成されるようになっている。なお、当該ログローテーション制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、当該ログローテーション制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、当該ログローテーション制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
なお、本発明は、本実施の形態で説明したログローテーション機能を有するMFP100以外にも、ログローテーション機能を有するシステム全般に応用可能である。
組み込み機器100の構成を示す図である。 ローテーション形跡ファイル110dに格納される第1識別子および第2識別子の一例を示す図である。 ローテーション形跡ファイル110dに格納される第3識別子の一例を示す図である。 ログ記録処理の一例を示すフローチャートである。 ログローテーション処理の一例を示すフローチャートである。 ログ取得処理の一例を示すフローチャートである。
符号の説明
100 組み込み機器(MFP)
102 アプリケーション部
104 ログ記録部
106 ログローテーション部
108 ログ取得部
110 記録部
200 外部記憶装置
202 記録領域

Claims (4)

  1. ログのローテーション処理を実行するログローテーション手段と前記ログの取得処理を実行するログ取得手段とを備えたログローテーション制御装置であって、
    前記ログローテーション手段および前記ログ取得手段を排他制御すること
    を特徴とするログローテーション制御装置。
  2. 前記ローテーション処理の開始および終了を識別するための識別子および前記ローテーション処理中であるか否かを識別するための識別子からなるローテーション形跡ファイルを記録する記録手段をさらに備え、
    前記ログ取得手段が前記取得処理を実行している際、前記ログローテーション手段が前記ローテーション処理を実行しているか否かを前記記録手段で記録している前記ローテーション形跡ファイルを用いて監視し、当該監視において前記ログローテーション手段が前記ローテーション処理を実行していると検知した場合には前記取得処理をキャンセルさせるよう前記ログ取得手段を制御すること
    を特徴とする請求項1に記載のログローテーション制御装置。
  3. 前記記録手段は、前記ローテーション形跡ファイルの代わりに、前記ログのロック状態を管理するログロックファイルを記録し、
    前記ログ取得手段が前記取得処理を実行している際、前記ログローテーション手段が前記ローテーション処理を実行しているか否かを前記記録手段で記録している前記ログロックファイルを用いて監視し、当該監視において前記ログローテーション手段が前記ローテーション処理を実行していると検知した場合には前記取得処理をキャンセルさせるよう前記ログ取得手段を制御すること
    を特徴とする請求項2に記載のログローテーション制御装置。
  4. ログのローテーション処理を実行するログローテーション手段と前記ログの取得処理を実行するログ取得手段とを備えたログローテーション制御装置に実行させるためのログローテーション制御プログラムであって、
    前記ローテーション制御装置に、前記ログローテーション手段および前記ログ取得手段を排他制御させること
    を特徴とするログローテーション制御プログラム。
JP2008064445A 2008-03-13 2008-03-13 ログローテーション制御装置およびログローテーション制御プログラム Pending JP2009223404A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008064445A JP2009223404A (ja) 2008-03-13 2008-03-13 ログローテーション制御装置およびログローテーション制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064445A JP2009223404A (ja) 2008-03-13 2008-03-13 ログローテーション制御装置およびログローテーション制御プログラム

Publications (1)

Publication Number Publication Date
JP2009223404A true JP2009223404A (ja) 2009-10-01

Family

ID=41240148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064445A Pending JP2009223404A (ja) 2008-03-13 2008-03-13 ログローテーション制御装置およびログローテーション制御プログラム

Country Status (1)

Country Link
JP (1) JP2009223404A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101269988B1 (ko) 2012-03-07 2013-05-31 주식회사 시큐아이 거부 로그 축약 데이터를 생성하기 위한 방법 및 장치
KR20210002602A (ko) * 2018-04-23 2021-01-08 후아웨이 테크놀러지 컴퍼니 리미티드 경보 로그 압축 방법, 장치, 및 시스템, 및 저장 매체

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101269988B1 (ko) 2012-03-07 2013-05-31 주식회사 시큐아이 거부 로그 축약 데이터를 생성하기 위한 방법 및 장치
KR20210002602A (ko) * 2018-04-23 2021-01-08 후아웨이 테크놀러지 컴퍼니 리미티드 경보 로그 압축 방법, 장치, 및 시스템, 및 저장 매체
KR102520044B1 (ko) 2018-04-23 2023-04-11 후아웨이 테크놀러지 컴퍼니 리미티드 경보 로그 압축 방법, 장치, 및 시스템, 및 저장 매체

Similar Documents

Publication Publication Date Title
US8099605B1 (en) Intelligent storage device for backup system
CN101809566B (zh) 高效的文件散列标识符计算
US9098306B2 (en) Image forming apparatus, program updating method and computer-readable storage medium
US9058298B2 (en) Integrated approach for deduplicating data in a distributed environment that involves a source and a target
JP3556170B2 (ja) 永続的更新シーケンス番号を使用してドキュメント変更をモニタリングする方法およびシステム
US9727424B2 (en) System and method for maintaining server data integrity
US20050086241A1 (en) Method, system, and program for personal data management using content-based replication
US20110197279A1 (en) Management methods of storage system and file system
US20100287338A1 (en) Selective mirroring method
US20180307861A1 (en) System and method for automatically establishing, tracking, and querying the trust level of files, patches, and updates
JP2001142764A (ja) ログ・ファイル保護システム
US8290992B2 (en) File management method, file management device, and program
CN110297822B (zh) 面向区块链的密钥管理方法、装置、设备及存储介质
CN105608150A (zh) 一种业务数据的处理方法及系统
JP2008171306A (ja) 電子装置およびプログラム
JP2009223404A (ja) ログローテーション制御装置およびログローテーション制御プログラム
US20140156943A1 (en) Information processing apparatus, information processing method, and program
JP2010015267A (ja) ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム
CN115630025A (zh) 用于监控共享文件系统内文件变动的系统和方法
CN104572943A (zh) 免安装程序清理方法及装置
US9858418B2 (en) Reducing delays associated with restoring quarantined files
CN112416885A (zh) 一种文件的实时同步方法
EP4202742B1 (en) Systems and methods for protecting data during synchronization
US11550666B1 (en) Efficient mechanism to perform auto retention locking of files ingested via distributed segment processing in deduplication backup servers
TW201814577A (zh) 用於防止計算機系統中數據惡意更改的方法和系統