(57)【要約】      （修正有）【課題】調査に必要なログが記録されたファイルが消去されるのを防止する技術を提供する。【解決手段】調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに上書きで消去される退避対象ローテーションログファイルの有無を判定する。退避対象ローテーションログファイルが有ると判定した場合は、複数のローテーションログファイルの参照回数が第２の閾値以下で、かつ、採取予定時まで上書きで消去されない単位ログファイルの余裕サイズを算出する。余裕サイズが退避対象単位ログファイルのサイズ以上の場合は、複数の単位ログファイルのうち、少なくとも一部を削除し、退避対象単位ログファイルを、退避対象ローテーションログファイルから別の名前にリネームすることで退避する。【選択図】図７
2019086880.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、
処理をコンピュータに実行させるログファイル制御プログラム。
【請求項２】
請求項１において、
前記退避対象単位ログファイルの上書きされるまでの上書き予測時間は、想定採取時までの時間より短いログファイル制御プログラム。
【請求項３】
請求項２において、
前記上書き予測時間Dnupは、次の式
Dnup=(Gmax-X)*Smax/Vup +(Smax-Sn)/Vup
（Gmaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの数、Xは、退避される単位ログファイルの数、Smaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの最大サイズ、Snは、前記退避対象単位ログファイルのファイルサイズ、Vupは、前記退避対象ローテーションログファイルに対する調査対象情報の出力速度である）
で表されるログファイル制御プログラム。
【請求項４】
請求項３において、
前記余裕サイズStは、次の式
St=Vup*(Dnup-Do)
（Doは、前記想定採取時までの時間である）
で表されるログファイル制御プログラム。
【請求項５】
請求項１において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも前記退避対象単位ログファイル分の単位ログファイルを削除するログファイル制御プログラム。
【請求項６】
請求項５において、
前記少なくとも一部を削除する処理では、
前記余裕サイズのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイルから所定世代前の単位ログファイルを削除するログファイル制御プログラム。
【請求項７】
請求項１において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイル以外の単位ログファイルを削除するログファイル制御プログラム。
【請求項８】
メモリと、
前記メモリに接続されたプロセッサとを有し、
前記プロセッサは、
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御装置。
【請求項９】
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法に関する。
【背景技術】
【０００２】
従来、ソフトウェアトラブル等の際に調査が必要な情報（以下、ログとも呼ぶ）をログファイル（以下、単にファイルとも呼ぶ）に記録する記録方法としてローテーション方式が知られている。ローテーション方式では、イベント（例えば、ファイルサイズが一定サイズを超えた、又は、一定期間が経過した）の発生に応じて、予め定められた世代数（ファイル数と等しい）の範囲内でログ出力先が循環的に切り替えられる（ローテーションされる）複数のファイルが用いられる。以下の特許文献は、ログの記録について関連する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−４０１４０号公報
【特許文献２】特開２００８−２６２２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ローテーション方式には、予め定められたサイズ・世代数よりファイルサイズ・ファイル数が大きくならないため、記憶装置の記憶容量（例えば、ディスク容量）を抑制できるという利点があるものの、ログ出力先ファイルが循環的に切り替えられる（ローテーションされる）ことに起因して、調査に必要なログが記録されたファイルが消去されてしまう（上書きされてしまう）場合があるという課題がある。
【０００５】
そこで、本開示の第１の側面の目的は、ログ出力先ファイルが循環的に切り替えられる（ローテーションされる）ことに起因して、調査に必要なログが記録されたファイルが消去されるのを防止することができるログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
一つの実施の形態は、情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、処理をコンピュータに実行させるログファイル制御プログラムである。
【発明の効果】
【０００７】
一つの実施の形態によれば、ログ出力先ファイルが循環的に切り替えられる（ローテーションされる）ことに起因して、調査に必要なログが記録されたファイルが消去されるのを防止することができるログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システム１０の構成を示す図である。
【図２】ローテーションログファイル１３１の例である。
【図３】監視ログファイル１３２の一例である。
【図４】情報処理システム１０の概略処理のフローチャートである。
【図５】情報処理システム１０の詳細処理のフローチャートである。
【図６】Ｓ１３−２の詳細処理のフローチャートである。
【図７】ログ参照頻度テーブル２３４を説明する図である。
【図８】ローテーションログファイル１３１の例である。
【図９】業務システム１の詳細構成を示す図である。
【図１０】メッセージ監視プログラム１１０ｄの詳細処理のフローチャートである。
【図１１】図６に示すＳ２０の詳細処理のフローチャートである。
【図１２】ログ参照頻度テーブル２３４（一部抽出）の例である。
【図１３】退避候補ログ状態テーブル１３４を説明する図である。
【図１４】図６に示すＳ２２の詳細処理のフローチャートである。
【図１５】削除候補ログ状態テーブル１３５の例である。
【図１６】図６に示すＳ２４の詳細処理のフローチャートである。
【図１７】動作設定情報の一例である。
【図１８】図６に示すＳ２６の詳細処理のフローチャートである。
【図１９】採取監視プログラムの詳細処理のフローチャートである。
【図２０】ログ参照頻度管理装置２の構成を示す図である。
【図２１】ログ参照頻度テーブル作成プログラム２１０ｂの詳細処理のフローチャートである。
【図２２】ログ参照頻度テーブル作成プログラム２１０ｂの詳細処理のフローチャートである。
【図２３】ログ参照頻度テーブル２３４の例である。
【図２４】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図２５】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図２６】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図２７】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図２８】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図２９】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３０】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３１】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３２】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３３】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３４】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３５】ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。
【図３６】変形例について説明するための図である。
【発明を実施するための形態】
【０００９】
［第１の実施の形態の概略］
図１は、情報処理システム１０の構成を示す図である。図１に示す情報処理システム１０は、実施の形態のログファイル制御プログラム、ログファイル制御装置及びログファイル制御方法が適用された業務システム１と、ログ採取端末１１と、ログ参照頻度管理装置２と、を有する。業務システム１、ログ採取端末１１及びログ参照頻度管理装置２は、例えば、サーバコンピュータで構成され、インターネット等のネットワークＮＷを介して相互に通信する。
【００１０】
業務システム１は、ハードウェアであるＣＰＵ１０１(Central Processing Unit。以下、プロセッサ１０１と呼ぶ)、メインメモリ１０２、大容量メモリであるストレージ１０４等を有する。プロセッサ１０１は、ストレージ１０４からメインメモリ１０２に展開された各種プログラムを実行することで様々な処理を行う。
【００１１】
ストレージ１０４には、業務用アプリケーションプログラム１１０ｂ、ログファイル制御プログラム１１０ｃ、メッセージ監視プログラム１１０ｄ、ローテーションログミドルウエア１１０ｆ、監視ミドルウエア１１０ｇ等の各種プログラムが記憶されている。また、ストレージ１０４には、ローテーションログファイル１３１、監視ログファイル１３２が記憶されている。また、ストレージ１０４には、ログ参照頻度管理装置２によって配信されたログ参照頻度テーブル２３４、ログ採取日の計算等に用いられる想定採取日数１３６等が記憶されている。
【００１２】
業務システム１は、プロセッサ１０１が業務用アプリケーションプログラム１１０ｂを実行することで、利用者に対して所定サービスを提供するサービス提供装置として動作する。
【００１３】
また、業務システム１は、プロセッサ１０１がローテーションログミドルウエア１１０ｆを実行することで、業務用アプリケーションプログラム１１０ｂの動作中に発生する様々な調査対象情報を出力してローテーションログファイル１３１に書き込む。ローテーションログミドルウエア１１０ｆは、業務用アプリケーションプログラム１１０ｂに含まれていてもよいし、他のプログラム（例えば、ミドルウエア）に含まれていてもよい。
【００１４】
また、業務システム１は、プロセッサ１０１が監視ログミドルウエア１１０ｇを実行することで、業務用アプリケーションプログラム１１０ｂの実行中に発生する様々な監視対象情報を出力して監視ログファイル１３２に書き込む。監視ログミドルウエア１１０ｇは、業務用アプリケーションプログラム１１０ｂに含まれていてもよいし、他のプログラム（例えば、ミドルウエア）に含まれていてもよい。
【００１５】
なお、ローテーションログミドルウエア１１０ｆと監視ログミドルウエア１１０ｇは、一つのプログラム（例えば、業務用アプリケーションプログラム）に含まれる場合もあるし、ローテーションログミドルウエア１１０ｆがあるプログラム（例えば、業務用アプリケーションプログラム）に含まれ、監視ログミドルウエア１１０ｇが他のプログラム（例えば、ミドルウエア）に含まれる場合もある。
【００１６】
また、業務システム１は、プロセッサ１０１がログファイル制御プログラム１１０ｃを実行することで、後述の削除・退避処理（図５、図６参照）を実行する。このように、業務システム１は、プロセッサ１０１がログファイル制御プログラム１１０ｃを実行することで、ログファイル制御装置１ａとして動作する。
【００１７】
ローテーションログミドルウエア１１０ｆによってローテーションログファイル１３１に書き込まれた調査対象情報（以下、ログとも呼ぶ）は、トラブル事象の発生時に原因調査の対象になる情報のことで、例えば、ウェブの状態ログやその他の通信のトレースログ等のログ情報のことである。トラブル事象とは、所定のエラー、所定の警告又は所定の情報が業務システム１から出力されることである。
【００１８】
図２は、ローテーションログファイル１３１の例である。図２には、４つのローテーションログファイル１３１Ａ〜１３１Ｄが示されている。以下、ローテーションログファイル１３１ＡのことをローテーションログファイルＡ又はＡログとも称する。ローテーションログファイル１３１Ｂ〜１３１Ｄについても同様である。なお、ローテーションログファイル１３１は、４つに限らず、２つ以上、すなわち、複数あればよい。以下、ローテーションログファイル１３１Ａ〜１３１Ｄを特に区別しない場合、ローテーションログファイル１３１と記載する。
【００１９】
ローテーションログファイル１３１は、循環して調査対象情報が書き込まれるように対応づけられた複数の単位ログファイルを有する。例えば、図２（ａ）に示すローテーションログファイル１３１Ａは、４つの単位ログファイルＡ１〜Ａ４を有する。同様に、図２（ｂ）〜図２（ｄ）に示すローテーションログファイル１３１Ｂ〜１３１Ｄも複数の単位ログファイルＢ１〜Ｂ４、Ｃ１〜Ｃ６、Ｄ１〜Ｄ５を有する。
【００２０】
ローテーションログファイル１３１を構成する単位ログファイルの数（世代数）及びそのファイルサイズは、例えば、代表的なトラブル事象が通常の頻度で発生した場合の調査対象情報の出力量であるログ出力量から想定される１日のログ出力量と、業務上調査対象情報であるログを保持する必要のある日数（ログを採取する間隔）と、を考慮して設計される。この観点から、例えば、図２（ａ）に示すローテーションログファイル１３１Ａは、４つの単位ログファイルで構成されている。他のローテーションログファイル１３１Ｂ〜１３１Ｄ（図２（ｂ）〜図２（ｄ）参照）も同様の観点からそれぞれ４つ、６つ、５つの単位ログファイルで構成されている。なお、各々の単位ログファイルのファイルサイズは同一であってもよいし、異なっていてもよい。ストレージ１０４の容量は、以上のように設計された単位ログファイルの数（世代数）及びそのファイルサイズを考慮して設計される。
【００２１】
プロセッサ１０１は、ローテーションログミドルウエア１１０ｆを実行することで、調査対象情報を出力してローテーションログファイル１３１を構成する複数の単位ログファイルにローテーション方式で書き込む。ローテーション方式では、書き込まれたログが単位ログファイルの一定サイズ（上限）に達すると、ログの書き込み先の単位ログファイルを切り替え、次の単位ログファイルにログが書き込まれ、全単位ログファイルに書き込まれると、元の単位ログファイルにログが上書きされる。
【００２２】
ローテーション方式について図２（ａ）を例に説明すると、今、単位ログファイルＡ３にログが書き込まれ、書き込まれたログが一定サイズに達すると、次の単位ログファイルＡ４が作成され、作成された単位ログファイルＡ４にログが書き込まれる。次に、単位ログファイルＡ４に書き込まれたログが一定サイズに達すると、次の単位ログファイルＡ１が作成され、作成された単位ログファイルＡ１にログが書き込まれる。以後、同様の処理が繰り返される。そして、最後の単位ログファイルＡ２に書き込まれたログが一定サイズに達すると、元の単位ログファイルＡ３が削除され、新しい単位ログファイルＡ３が作成され、作成された単位ログファイルＡ３にログが書き込まれる。次に、単位ログファイルＡ３に書き込まれたログが一定サイズに達すると、元の単位ログファイルＡ４が削除され、新しい単位ログファイルＡ４が作成され、作成された単位ログファイルＡ４にログが書き込まれる。以後同様の処理が繰り返される。
【００２３】
ローテーションログファイル１３１は、ストレージ１０４を関連づけることで単位ログファイルが作成され、その関連づけを削除することで単位ログファイルが削除される。
【００２４】
本実施形態では、上記のように元の単位ログファイルが削除され、新しい単位ログファイルが作成され、その結果、元の単位ログファイルのログが失われることを上書きと呼ぶ。
【００２５】
図３は、監視ログファイル１３２の一例である。監視ログファイル１３２は、例えば、Ｌｉｎｕｘ（登録商標）において用いられるｓｙｓｌｏｇである。プロセッサ１０１は、監視ログミドルウエア１１０ｇを実行することで、メッセージを含む監視対象情報を出力して監視ログファイル１３２に書き込む。図３中の「Feb 13 16:34:50・・・84 [XXXXWeb05XXXX]」が監視対象情報の一部の例である。図３中、「ERROR…Address already in use: make_sock: could not bind to address」の部分がメッセージ（例えば、後述のXX Error）の一例である。監視ログファイル１３２に書き込まれるメッセージは、１つに限らず、複数の場合もある（例えば、後述のXX Error、YY Error）。
【００２６】
図４は、情報処理システム１０の概略処理のフローチャートである。まず、プロセッサ１０１は、監視ログミドルウエア１１０ｇを実行することで、業務用アプリケーションプログラム１１０ｂの実行中に発生する様々な監視対象情報を出力して監視ログファイル１３２に書き込む（Ｓ１０）。次に、プロセッサ１０１は、ローテーションログミドルウエア１１０ｆを実行することで、業務用アプリケーションプログラム１１０ｂの動作中に発生する様々な調査対象情報を出力してローテーションログファイル１３１に書き込む（Ｓ１２）。Ｓ１０、Ｓ１２は、採取予定日まで繰り返し実行される。
【００２７】
そして、採取予定日が到来すると（Ｓ１４：ＹＥＳ）、ログ採取端末１１は、業務システム１にアクセスし、ローテーションログファイル１３１内のログを採取する（Ｓ１６）。採取は、自動で又は後述のように運用管理者による操作をトリガにして行われる。
【００２８】
採取予定日とは、ログを採取する予定の日である。採取予定日は、ストレージ１０４に記憶された想定採取日数１３６（例えば、７日）に基づいて算出される。想定採取日数１３６は、採取予定日が、ログの採取に伴うファイル移動のためにＩ／Ｏ負荷が高くなっても業務（業務システム１）に影響を及ぼす可能性が低い日（例えば、業務を行わない日曜日）となるように考慮して定められる。
【００２９】
採取されるログは、単位ログファイル、例えば、トラブル事象発生時の調査対象情報が書き込まれた単位ログファイルやその１又は複数世代前の単位ログファイル内のログである。採取とは、ログをストレージ１０４から読み出して別のストレージ、例えば、ログ採取端末１１の採取ログ格納部１１ａへコピーすることである。また、採取とは、ログをストレージ１０４内のあるファイルシステムから読み出して同一のストレージ１０４内の別のファイルシステムへコピーすることであってもよい。採取は、コピー後、元のログを削除する処理を含んでいてもよい。
【００３０】
例えば、ログ採取端末１１は、ローテーションログファイル１３１を構成する複数の単位ログファイルのうち、トラブル事象発生時のログが書き込まれた単位ログファイル、さらに、必要に応じてその１又は複数世代前の単位ログファイルを採取する。調査者は、採取されたログに基づき、発生したトラブル事象の原因を調査する。
【００３１】
以上のように、単位ログファイルの数（世代数）及びそのファイルサイズは、代表的なトラブル事象が通常の頻度で発生した場合の調査対象情報の出力量であるログ出力量から想定される１日のログ出力量と、業務上調査対象情報であるログを保持する必要のある日数と、を考慮して設計される。そして、ストレージ１０４の容量は、このように設計された単位ログファイルの数（世代数）及びそのファイルサイズを考慮して設計される。そのため、調査対象情報の出力量が想定の範囲内である限り、調査対象情報がローテーション方式で循環的に書き込まれても、採取予定日までの間に、トラブル事象発生時の調査対象情報が書き込まれた単位ログファイル（以下、最新単位ログファイルとも呼ぶ）が新しい単位ログファイルで上書きされることはない。図２及び図８中の単位ログファイルＡ３、Ｂ３、Ｃ３、Ｄ３が最新単位ログファイルの例である。最新とは、トラブル事象発生時における最新のことで、図２及び図８中の「最新」はこのことを表している。図８は、ローテーションログファイル１３１の例である。
【００３２】
しかしながら、業務システム１の環境や運用状況によって（例えば、トラブル事象に誘発されて）調査対象情報の出力量が想定以上となる場合がある。この場合、想定以上の調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に、最新単位ログファイルが新しい単位ログファイルで上書きされて失われてしまうことがある。その結果、最新単位ログファイルを、採取予定日に採取することができず、発生したトラブル事象の原因を調査することができないという問題がある。
【００３３】
図５は、情報処理システム１０の詳細処理のフローチャートである。図５では、図４のフローチャートにＳ１３−１、Ｓ１３−２の処理が追加されている。それ以外、図４に示す処理と同様である。以下、図４との相違点を中心に説明する。
【００３４】
プロセッサ１０１は、監視ログミドルウエア１１０ｇを実行することで、監視対象情報を監視ログファイル１３２に書き込む（Ｓ１０）。次に、プロセッサ１０１は、ローテーションログミドルウエア１１０ｆを実行することで、調査対象情報をローテーションログファイル１３１に書き込む（Ｓ１２）。さらに、プロセッサ１０１は、メッセージ監視プログラム１１０ｄを実行することで、監視ログファイル１３２を参照してメッセージ（トラブル事象）を検知したか否かを判定する（Ｓ１３−１）。
【００３５】
プロセッサ１０１は、メッセージを検知した場合（Ｓ１３−１：ＹＥＳ）、ログファイル制御プログラム１１０ｃを実行することで、削除・退避処理（Ｓ１３−２）を実行する。つまり、メッセージ検知時、採取予定日までの間に、メッセージ検知時（トラブル事象発生時）の調査対象情報が書き込まれた単位ログファイルが新しい単位ログファイルで上書きされないように、最新単位ログファイル（メッセージ検知時のログが書き込まれた単位ログファイル)をリネームすることで退避する。なお、最新単位ログファイルに加えて、その最新単位ログファイルの１又は複数世代前の単位ログファイルをリネームする場合もある。
【００３６】
図６は、Ｓ１３−２の詳細処理のフローチャートである。
【００３７】
以下の処理は、プロセッサ１０１が、ログファイル制御プログラム１１０ｃを実行することで行う。
【００３８】
まず、プロセッサ１０１は、複数のローテーションログファイル１３１Ａ〜１３１Ｄのうち、次の２つの条件を満たすローテーションログファイル（以下、退避対象ローテーションログファイルと呼ぶ）を判定する退避対象ローテーションログファイル判定処理を実行する（Ｓ２０）。
【００３９】
１つめの条件は、Ｓ１３−１で検知されたメッセージ（トラブル事象）の原因調査のために過去に参照された回数（以下、参照回数と呼ぶ）が第１の閾値以上のローテーションログファイルである。参照回数は、メッセージの識別情報とそのメッセージの原因調査のために過去に参照されたローテーションログファイルの識別情報とを対応づけたログ参照頻度テーブル２３４から抽出される。ログ参照頻度テーブル２３４は、ログ参照頻度管理装置２が業務システム１に対して配信したものであり、ストレージ１０４に記憶されている。ログ参照頻度管理装置２の詳細は、後述する。
【００４０】
図７は、ログ参照頻度テーブル２３４を説明する図である。図７に示すログ参照頻度テーブル２３４は、ログ参照頻度テーブル２３４に含まれる各情報を識別する「項番」と、メッセージの識別情報が設定される「メッセージ」と、「メッセージ」の原因調査のために過去に参照されたローテーションログファイルの識別情報が設定される「ログ名」と、「メッセージ（トラブル事象）」の原因調査のために過去に参照された「ログ名」の参照回数が設定される「参照回数」と、「メッセージ（トラブル事象）」の原因調査のために過去に参照された「ログ名」の世代数が設定される「参照世代数」と、を項目として有する。なお、ログ参照頻度テーブル２３４は、ログ参照頻度管理装置２が自動的に作成してもよいし、サポート員等が各項目を手入力することで作成してもよい。なお、図７に示すログ参照頻度テーブル２３４は、説明を簡単にするため、「参照回数」が「０」、「８」、「５２」、「６４」の４行のみを示しているが、実際には、項番５以上の行を含んでいる。
【００４１】
２つめの条件は、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれており、かつ、調査対象情報がローテーション方式で書き込まれることによって採取予定日までに新しい単位ログファイルで上書きされる単位ログファイル（以下、退避対象単位ログファイルとも呼ぶ）を含むローテーションログファイルである。
【００４２】
次に、図８を参照しながら、上記２つの条件を満たすローテーションログファイル、すなわち、退避対象ローテーションログファイルを判定する具体例を説明する。
【００４３】
１つめの条件を満たすか否かは、次のようにして判定される。
【００４４】
以下、Ｓ１３−１でメッセージ「XX Error」が検知され、第１の閾値として５２未満の数（例えば、５０）が設定され、図８に示すローテーションログファイル１３１Ａ〜１３１Ｄ及び図７に示すログ参照頻度テーブル２３４がストレージ１０４に記憶されているものとして説明を行う。
【００４５】
プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、ログ参照頻度テーブル２３４を参照し、Ｓ１３−１で検知されたメッセージ「XX Error」の原因調査のために過去に参照されたローテーションログファイル１３１を判定し、その参照回数が第１の閾値以上か否かを判定する。
【００４６】
図７を参照すると、メッセージ「XX Error」が対応づけられた「ログ名」、すなわち、メッセージ「XX Error」の原因調査のために過去に参照されたローテーションログファイル１３１は、Ａログ及びＢログ、すなわち、ローテーションログファイル１３１Ａ、１３１Ｂの２つであることが分かる。そのうち、参照回数が第１の閾値以上であるのは、Ａログ及びＢログ、すなわち、ローテーションログファイル１３１Ａ及び１３１Ｂである。この場合、プロセッサ１０１は、１つめの条件を満たすのはローテーションログファイル１３１Ａ及び１３１Ｂであると判定する。
【００４７】
２つめの条件を満たすか否かは、次のようにして判定される。
【００４８】
プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、ローテーションログファイル１３１に対する調査対象情報の出力速度であるログ出力速度を測定する。また、プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、測定したログ出力速度、単位ログファイルの数及びそのファイルサイズに基づき、最新単位ログファイルが上書きされるまでの上書き予測日数を算出する。さらに、プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、算出した上書き予測日数と想定採取日数１３６とを比較する。そこで、比較の結果、例えば、算出した上書き予測日数が想定採取日数１３６より短い場合、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた最新単位ログファイルが、採取予定日までに新しい単位ログファイルで上書きされる。プロセッサ１０１は、上書きされる最新単位ログファイルを退避対象単位ログファイルと判定する。ログ出力速度の測定の仕方、上書き予測日数の算出の仕方は、後述する。
【００４９】
以下、想定採取日数１３６として７日が設定されており、ローテーションログファイル１３１Ａの上書き予測日数が１４日、ローテーションログファイル１３１Ｂの上書き予測日数が２日、ローテーションログファイル１３１Ｃの上書き予測日数が２０日、ローテーションログファイル１３１Ｄの上書き予測日数が１４日と算出されたものとして説明を行う。また、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた最新単位ログファイルが、単位ログファイルＡ３、Ｂ３、Ｃ３、Ｄ３であるものとして説明を行う。
【００５０】
この場合、上書き予測日数が想定採取日数１３６より小さいのはローテーションログファイル１３１Ｂのみであり、単位ログファイルＢ３が、採取予定日までに新しい単位ログファイルで上書きされることが分かる。
【００５１】
この場合、プロセッサ１０１は、２つめの条件を満たすのは採取予定日までに新しい単位ログファイルで上書きされる単位ログファイルＢ３を含むローテーションログファイル１３１Ｂのみであると判定する。
【００５２】
以上のように、上記２つの条件を満たすのはローテーションログファイル１３１Ｂのみであるため、この例では、プロセッサ１０１は、ローテーションログファイル１３１Ｂが退避対象ローテーションログファイルであると判定する。
【００５３】
ここで、ログ参照頻度テーブル２３４を参照すると、Ｂログ、すなわち、ローテーションログファイル１３１Ｂに対応付けられた「参照世代数」に「１」が設定されている。これは、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた単位ログファイルＢ３に加えて、その１世代前の単位ログファイルＢ２も退避対象単位ログファイルとなることを表す。なお、「参照世代数」に「２」が設定されている場合、単位ログファイルＢ３に加えて、その２世代前の単位ログファイルＢ２、Ｂ１も退避対象単位ログファイルとなることを表す。また、ローテーションログファイル１３１Ｂに対応付けられた「参照世代数」に「０」が設定されている場合、単位ログファイルＢ３のみが退避対象単位ログファイルとなることを表す。なお、ストレージ１０４に固定値Ｎ（Ｎは、０以上の整数）を記憶しておき、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた単位ログファイルＢ３に加えて、そのＮ世代前の単位ログファイルも退避対象単位ログファイルとなるようにしてもよい。
【００５４】
以下、退避対象単位ログファイルが単位ログファイルＢ３、Ｂ２であるものとして説明を行う。
【００５５】
図８（ｂ)に示すように、退避対象単位ログファイルＢ２、Ｂ３は、リネームすることで退避される。以下、リネーム後の退避対象単位ログファイルのことを、退避ログファイルＢ２´、Ｂ３´と呼ぶ。
【００５６】
ここで、例えば、退避対象単位ログファイルＢ２、Ｂ３をリネームすると、リネーム前の退避対象単位ログファイルＢ２、Ｂ３はローテーションログファイル１３１Ｂとの関連づけが削除された状態となる。図８（ｂ）中の点線の四角Ｓは、この状態を表す。しかし、想定以上の調査対象情報がローテーション方式で書き込まれるため、採取予定日までの間に単位ログファイルＢ２、Ｂ３が新たに作成される。その結果、リネーム後の退避ログファイルＢ２´、Ｂ３´（ファイルサイズ）は、ストレージ１０４の容量の設計の際に考慮されていない余分なファイル（ファイルサイズ）となる。この余分なファイルを考慮してストレージ１０４の容量を設計することも考えられるが、このようにすると、ストレージ１０４の容量を大容量にしなければならないという問題がある。
【００５７】
そこで、本実施形態では、ストレージ１０４の容量を大容量にすることなく、採取予定日までの間、リネーム対象の退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計以上の空き容量をストレージ１０４に確保するために、プロセッサ１０１は、以下の処理（図６に示すＳ２２、Ｓ２４）を実行する。
【００５８】
まず、プロセッサ１０１は、複数のローテーションログファイル１３１Ａ〜１３１Ｄのうち、次の２つの条件を満たすローテーションログファイル（以下、削除対象ローテーションログファイルと呼ぶ）を判定する削除対象ローテーションログファイル判定処理を実行する（Ｓ２２）。
【００５９】
１つめの条件は、Ｓ１３−１で検知されたメッセージ（トラブル事象）の原因調査のために過去に参照された参照回数が第２の閾値以下のローテーションログファイルである。
【００６０】
２つめの条件は、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれており、かつ、調査対象情報がローテーション方式で書き込まれることによって採取予定日までに新しい単位ログファイルで上書きされない単位ログファイルを含むローテーションログファイルである。
【００６１】
次に、図８を参照しながら、上記２つの条件を満たすローテーションログファイル、すなわち、削除対象ローテーションログファイルを判定する具体例を説明する。
【００６２】
１つめの条件を満たすか否かは、次のようにして判定される。
【００６３】
以下、Ｓ１３−１でメッセージ「XX Error」が検知され、第２の閾値として８と５２の間の数（例えば、１０）が設定され、図８に示すローテーションログファイル１３１Ａ〜１３１Ｄ及び図７に示すログ参照頻度テーブル２３４がストレージ１０４に記憶されているものとして説明を行う。
【００６４】
プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、ログ参照頻度テーブル２３４を参照し、Ｓ１３−１で検知されたメッセージ「XX Error」が対応づけられたローテーションログファイル１３１以外のローテーションログファイル１３１を判定し、その参照回数が第２の閾値以下か否かを判定する。
【００６５】
図７を参照すると、メッセージ「XX Error」が対応づけられたローテーションログファイル１３１（Ａログ、Ｂログ）以外のローテーションログファイル１３１は、Ｃログ及びＤログ、すなわち、ローテーションログファイル１３１Ｃ、１３１Ｄの２つであることが分かる。そのうち、参照回数が第２の閾値以下であるのは、Ｃログ及びＤログ、すなわち、ローテーションログファイル１３１Ｃ、１３１Ｄの２つである。
【００６６】
この場合、プロセッサ１０１は、１つめの条件を満たすのはローテーションログファイル１３１Ｃ、１３１Ｄの２つであると判定する。
【００６７】
２つめの条件を満たすか否かは、次のようにして判定される。
【００６８】
プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、ローテーションログファイル１３１に対する調査対象情報の出力速度であるログ出力速度を測定し、測定したログ出力速度、単位ログファイルの数及びそのファイルサイズに基づき、上書き予測日数を算出し、さらに、算出した上書き予測日数と想定採取日数１３６とを比較する。そして、比較の結果、例えば、算出した上書き予測日数が想定採取日数１３６より長い場合、プロセッサ１０１は、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた単位ログファイルが、採取予定日までに新しい単位ログファイルで上書きされないと判定する。
【００６９】
以下、想定採取日数１３６として７日が設定されており、ローテーションログファイル１３１Ａの上書き予測日数が１４日、ローテーションログファイル１３１Ｂの上書き予測日数が２日、ローテーションログファイル１３１Ｃの上書き予測日数が２０日、ローテーションログファイル１３１Ｄの上書き予測日数が１４日と算出されたものとして説明を行う。また、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた最新単位ログファイルが、単位ログファイルＡ３、Ｂ３、Ｃ３、Ｄ３であるものとして説明を行う。
【００７０】
この場合、上書き予測日数が想定採取日数１３６より長いのはＡログ、Ｃログ、Ｄログ、すなわち、ローテーションログファイル１３１Ａ、１３１Ｃ、１３１Ｄであり、最新単位ログファイルＡ３、Ｃ３、Ｄ３が、採取予定日までに新しい単位ログファイルで上書きされないことが分かる。
【００７１】
この場合、プロセッサ１０１は、２つめの条件を満たすのはローテーションログファイル１３１Ａ、１３１Ｃ、１３１Ｄであると判定する。
【００７２】
以上のように、ローテーションログファイル１３１Ａは１つめの条件を満たさず、上記２つの条件を満たすのはローテーションログファイル１３１Ｃ、１３１Ｄであるため、この例では、プロセッサ１０１は、ローテーションログファイル１３１Ｃ、１３１Ｄが削除対象ローテーションログファイルであると判定する。
【００７３】
次に、プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、リネーム対象の退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計以上の空き容量をストレージ１０４に確保するために、削除対象ローテーションログファイル１３１Ｃ、１３１Ｄが持つ余裕サイズを算出する。
【００７４】
図８（ｃ）及び図８（ｄ）を参照しながら、余裕サイズについて説明する。
【００７５】
例えば、図８（ｃ）に示す削除対象ローテーションログファイルＣにおいては、複数の単位ログファイルＣ１〜Ｃ６のうち、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた単位ログファイルＣ３以外の単位ログファイルＣ１〜Ｃ２、Ｃ４〜Ｃ６を削除したとする。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルＣ４、Ｃ５、Ｃ６、Ｃ１が新たに作成される。一方、一部の単位ログファイルＣ１（右半分）、Ｃ２には、採取予定日まで調査対象情報が書き込まれない。図８（ｃ）中の縦の点線Ｌは、採取予定日までに、その点線位置まで調査対象情報が書き込まれることを表す。この採取予定日まで調査対象情報が書き込まれない単位ログファイルＣ１（右半分）、Ｃ２のサイズが余裕サイズである。
【００７６】
同様に、図８（ｄ）に示す削除対象ローテーションログファイルＤにおいては、複数の単位ログファイルＤ１〜Ｄ５のうち、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた単位ログファイルＤ３以外の単位ログファイルＤ１〜Ｄ２、Ｄ４〜Ｃ５を削除したとする。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルＤ４、Ｄ５、Ｄ１、Ｄ２が新たに作成される。一方、一部の単位ログファイルＤ２（右半分）には、採取予定日まで調査対象情報が書き込まれない。図８（ｄ）中の縦の点線Ｌは、採取予定日までに、その点線位置まで調査対象情報が書き込まれることを表す。この採取予定日まで調査対象情報が書き込まれない単位ログファイルＤ２（右半分）のサイズが余裕サイズである。
【００７７】
余裕サイズ（合計）は、採取予定日におけるストレージ１０４の空き容量を表す。なお、余裕サイズの算出方法の詳細は、後述する。
【００７８】
次に、プロセッサ１０１は、ログファイル制御プログラム１１０ｃを実行することで、上記のように算出された余裕サイズの合計（つまり、採取予定日におけるストレージ１０４の空き容量）が退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計以上か否かを判定する。
【００７９】
プロセッサ１０１は、合計以上の場合、つまり、採取予定日までの間、リネーム対象の退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計以上の空き容量がストレージ１０４に確保される場合、削除対象ローテーションログファイルを構成する複数の単位ログファイルのうち、少なくとも一部（退避対象単位ログファイルＢ２、Ｂ３分の単位ログファイル）を削除する単位ログファイル削除処理を実行する（Ｓ２４）。
【００８０】
例えば、プロセッサ１０１は、削除対象ローテーションログファイルＣを構成する複数の単位ログファイルＣ１〜Ｃ６のうち、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた最新単位ログファイルＣ３以外の単位ログファイルＣ１〜Ｃ２、Ｃ４〜Ｃ６を削除する処理を行う。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルＣ４、Ｃ５、Ｃ６、Ｃ１が新たに作成されるが、単位ログファイルＣ１（右半分）、Ｃ２は、調査対象情報が書き込まれない余裕サイズ（つまり、採取予定日におけるストレージ１０４の空き容量を表す）となる。
【００８１】
同様に、削除対象ローテーションログファイルＤを構成する複数の単位ログファイルＤ１〜Ｄ５のうち、Ｓ１３−１で検知されたメッセージ（トラブル事象）発生時の調査対象情報が書き込まれた最新単位ログファイルＤ３以外の単位ログファイルＤ１〜Ｄ２、Ｄ４〜Ｃ５を削除する。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルＤ４、Ｄ５、Ｄ１、Ｄ２が新たに作成されるが、単位ログファイルＤ２（右半分）は、調査対象情報が書き込まれない余裕サイズ（つまり、採取予定日におけるストレージ１０４の空き容量を表す）となる。
【００８２】
以上のように、削除対象単位ログファイルＢ２、Ｂ３分の単位ログファイルを削除（関連づけを削除）して解放する。これにより、ストレージ１０４の容量を大容量にすることなく、採取予定日までの間、リネーム対象の退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計以上の空き容量をストレージ１０４に確保することができる。
【００８３】
最新単位ログファイルＣ３、Ｄ３と、次回採取予定日に書き込まれる単位ログファイルＣ１、Ｄ１の間の単位ログファイルＣ２、Ｄ２のうち、退避対象単位ログファイルＢ２、Ｂ３のファイルサイズの合計分の単位ログファイルのみを削除してもよい。
【００８４】
この単位ログファイルＣ２、Ｄ２には、次の採取予定日まで削除され上書きされることはないので、退避対象ローテーションログファイル１３１Ｂの退避対象単位ログファイルＢ２、Ｂ３の作成のために使用してもよいからである。また、Ｃ４〜Ｃ６、Ｃ１は、削除されずに、別のトラブル事象発生に伴い、調査対象ログとして利用可能になる。
【００８５】
次に、プロセッサ１０１は、退避対象単位ログファイルＢ２、Ｂ３を退避対象ローテーションログファイルから他の名前にリネームする。つまり、退避対象ローテーションログファイルとの関連づけを削除して、他の名前のファイルとの関連づけに変更するリネームを行う退避対象単位ログファイル退避処理を実行する（Ｓ２６）。リネームは、例えば、リネーム前のファイル名を一定の規則で変更することで行ってもよいし、リネーム前のファイル名に一定の規則で文字列等を付加することで行ってもよいし、その他の手法で行ってもよい。
【００８６】
このように、退避対象単位ログファイルＢ２、Ｂ３の退避をリネームすることで行うため、退避対象単位ログファイルＢ２、Ｂ３の退避をコピーすることで行う場合と比べ、Ｉ／Ｏ負荷が高くなるのを防止することができる。
【００８７】
リネーム後、退避対象ローテーションログファイルが、解放された単位ファイルと関連づけて、リネームした単位ログファイルを穴埋めして、ローテーションログファイルの新しい単位ログファイルとして作成する。この時、サイズとしては、削除対象ローテーションログファイルの削除された単位ログファイルのサイズが利用される。
【００８８】
次に、図５に戻り、採取予定日が到来すると（Ｓ１４：ＹＥＳ）、ログ採取端末１１は、業務システム１にアクセスし、ログ（例えば、リネーム後の単位ログファイルＢ２、Ｂ３。つまり、退避ログファイルＢ２´、Ｂ３´）を採取する（Ｓ１６）。採取は、自動で又は後述のように運用管理者による操作をトリガにして行われる。調査者は、採取されたログに基づき、発生したトラブル事象の原因を調査する。
【００８９】
以上のように、本実施形態によれば、ログ出力先ファイルが循環的に切り替えられる（ローテーションされる）ことに起因して、調査に必要なログが記録されたファイル（例えば、リネーム後の単位ログファイルＢ２、Ｂ３。つまり、退避ログファイルＢ２´、Ｂ３´）が消去されるのを防止することができる。
【００９０】
また、本実施形態によれば、業務システム１の環境や運用状況によって（例えば、トラブル事象に誘発されて）調査対象情報の出力量が想定以上となったとしても、調査に必要な単位ログファイル（リネーム後の単位ログファイル。つまり、退避ログファイルＢ２´、Ｂ３´）を、採取予定日に採取することができる。
【００９１】
［第１の実施の形態の詳細］
図９は、業務システム１の詳細構成を示す図である。図９に示すように、業務システム１は、プロセッサ１０１と、主記憶装置であるメインメモリ１０２と、ＮＩＣ(Network Interface Card)１０３と、バス１０５と、補助記憶装置であるストレージ１０４（例えば、ハードディスク装置）と、を有する。ストレージ１０４内には、ＯＳ(Operating System)１１０ａ、ＯＳ１１０ａ上で実行されるプログラム、例えば、業務用アプリケーションプログラム１１０ｂ、ログファイル制御プログラム１１０ｃ、メッセージ監視プログラム１１０ｄ、採取監視プログラム１１０ｅ、調査対象情報をローテーションログファイル１３１に書き込むローテーションログミドルウエア１１０ｆ、監視対象情報を監視ログファイル１３２に書き込む監視ログミドルウエア１１０ｇが記憶されている。これらのプログラムは、メモリ１０２に展開されプロセッサ１０１により実行される。以下、ローテーションログミドルウエア１１０ｆが業務用アプリケーションプログラム１１０ｂに含まれ、監視ログミドルウエア１１０ｇがＯＳ１１０ａに含まれているものとして説明する。
【００９２】
また、ストレージ１０４内には、ローテーションログファイル１３１、監視ログファイル１３２、ログ参照頻度テーブル２３４、退避候補ログ状態テーブル１３４、削除候補ログ状態テーブル１３５、想定採取日数１３６、動作設定情報１３７が記憶されている。
【００９３】
［メッセージ監視プログラム１１０ｄ］
図１０は、メッセージ監視プログラム１１０ｄの詳細処理のフローチャートである。
【００９４】
以下の処理は、プロセッサ１０１が、メッセージ監視プログラム１１０ｄを実行することで行う。
【００９５】
プロセッサ１０１は、監視ログファイル１３２を参照してメッセージ（トラブル事象）を検知したか否かを判定する（Ｓ３０）。その結果、メッセージを検知した場合（Ｓ３０：ＹＥＳ）、プロセッサ１０１は、ログ参照頻度テーブル２３４を参照して、検知したメッセージが設定されているか否かを判定する（Ｓ３２）。
【００９６】
プロセッサ１０１は、検知したメッセージ（例えば、XX Error）が設定されていると判定した場合（Ｓ３２：ＹＥＳ）、ログファイル制御プログラム１１０ｃを実行することで、退避・削除処理（図５に示すＳ１３−２及び図６参照）を実行する。
【００９７】
次に、プロセッサ１０１は、停止指示を受信したか否かを判定する（Ｓ３４）。
【００９８】
その結果、受信したと判定した場合（Ｓ３４：ＹＥＳ）、プロセッサ１０１は、処理を終了する。停止指示は、例えば、業務システム１に対する修正適用等のために業務システム１を停止する必要がある場合、システム管理者がログ採取端末１１等から入力する。一方、受信しないと判定した場合（Ｓ３４：ＮＯ）、プロセッサ１０１は、Ｓ３０〜Ｓ３４の処理を繰り返し実行する。
【００９９】
［Ｓ２０の詳細処理］
図１１は、図６に示すＳ２０の詳細処理のフローチャートである。図１２は、ログ参照頻度テーブル２３４（一部抽出）の例である。図１３は、退避候補ログ状態テーブル１３４の例である。以下の処理は、プロセッサ１０１が、ログファイル制御プログラム１１０ｃを実行することで行う。
【０１００】
以下、Ｓ３０でメッセージ（XX Error）が検知され、Ｓ３０でメッセージ（XX Error）が検知された時（トラブル事象発生時）の調査対象情報が書き込まれた最新単位ログファイルが図８に示す単位ログファイルＡ３、Ｂ３、Ｃ３、Ｄ３であるものとして説明を行う。
【０１０１】
まず、プロセッサ１０１は、図７に示すログ参照頻度テーブル２３４を参照して、Ｓ３０で検知したメッセージ（XX Error）が設定されている行（ここでは、項番１、２の２行）を抽出する（Ｓ４０）。次に、プロセッサ１０１は、抽出した行を参照回数の多い順にソートする（Ｓ４１）。次に、プロセッサ１０１は、ソートした行から参照回数が第１閾値以上の行を抽出する（Ｓ４２）。ここでは、図１２（ａ）に示す２行が抽出されたものとする。ここでは、説明を分かりやすくするために、１から始まるように項番をふり直すものとする。
【０１０２】
次に、プロセッサ１０１は、Ｓ４２で抽出した行（項番）を示すＮ１に１を設定する（Ｓ４３）。
【０１０３】
次に、プロセッサ１０１は、Ｓ４２で抽出した行（項番）を参照して、項番Ｎ１（ここでは、Ｎ１＝１）の行が存在するか否かを判定する（Ｓ４４）。ここでは、図１２（ａ）に示すように、項番Ｎ１（ここでは、Ｎ１＝１）の行が存在するため、プロセッサ１０１は、項番Ｎ１の行が存在すると判定する（Ｓ４４：ＹＥＳ）。
【０１０４】
次に、プロセッサ１０１は、項番Ｎ１（ここでは、Ｎ１＝１）の行から、「ログ名」（ここでは、Ａログ）を抽出する（Ｓ４５）。
【０１０５】
次に、プロセッサ１０１は、Ｓ４５で抽出した「ログ名」（ここでは、Ａログ）に対する調査対象情報の出力速度であるログ出力速度を測定し、最新単位ログファイルＡ３が上書きされるまでの上書き予測日数を算出する（Ｓ４６）。
【０１０６】
［ログ出力速度の測定方法］
以下、一例として、Ａログ、すなわち、ローテーションログファイル１３１Ａに対するログ出力速度の測定方法を説明する。
【０１０７】
ローテーションログファイル１３１Ａに対するログ出力速度Vup（更新速度）は、次の式１で算出することができる。
Vup=Sn/(Dn-Dp)   ・・・（式１）
【０１０８】
但し、Snは、最新単位ログファイルＡ３のファイルサイズである。Dnは、最新単位ログファイルＡ３の更新日時である。Dpは、最新単位ログファイルＡ３の一つ前の単位ログファイルＡ２の更新日時である。なお、日数を問題とするため、単位はByte/dayに調整する。
【０１０９】
また、ログ出力速度Vup（更新速度）は、次の式２で算出することもできる。
Vup=(S2-S1)/Time  ・・・（式２）
【０１１０】
但し、S1は、最初に測定した最新単位ログファイルＡ２のファイルサイズである。S2は、時間Time後に測定した最新単位ログファイルＡ３のファイルサイズである。なお、日数を問題とするため、単位はByte/dayに調整する。
【０１１１】
［上書き予測日数の算出方法］
以下、一例として、Ａログ、すなわち、ローテーションログファイル１３１Ａの最新単位ログファイルＡ３が上書きされるまでの上書き予測日数の算出方法を説明する。
【０１１２】
まず、ローテーションログファイル１３１Ａを構成する１つの単位ログファイルに書き込まれる調査対象情報（ログ）が一定サイズ（上限）に達するまで何日かかるかを、次の式３で計算する。
D1=Smax/Vup  ・・・（式３）
【０１１３】
但し、Smaxは、ローテーションログファイル１３１Ａを構成する単位ログファイルの最大サイズである。Smaxは、ローテーションログファイル設計時に決定されて予めストレージ１０４に記憶されている。
【０１１４】
次に、上書き予測日数を、次の式４で計算する。
Dnup=(Gmax-X)*D1+(Smax-Sn)/Vup  ・・・（式４）
【０１１５】
但し、Gmaxは、予め定められた世代数である。この例では、ローテーションログファイル１３１Ａは４つの単位ログファイルＡ１〜Ａ４を有するため、Gmaxは４である。Xは、退避対象ファイルの数である。この例では、ローテーションログファイル１３１Ａ、すなわち、ログ名（Ａログ）が対応づけられた図７に示すログ参照頻度テーブル２３４中の「参照世代数」が「２」であるため、Xは２である。なお、これに限らず、Xはストレージ１０４に記憶された固定値を用いてもよい。
【０１１６】
D1は、Smax/Vupである。Smaxは、ローテーションログファイル１３１Ａを構成する単位ログファイルＡ１〜Ａ４の最大サイズである。Snは、最新単位ログファイルＡ３のファイルサイズである。Vupは、上記式１又は式２で算出したローテーションログファイル１３１Ａに対するログ出力速度である。
【０１１７】
次に、プロセッサ１０１は、算出した上書き予測日数、退避サイズ等を退避候補ログ状態テーブル１３４に設定する（Ｓ４７）。
【０１１８】
図１３は、退避候補ログ状態テーブル１３４を説明する図である。図１３に示す退避候補ログ状態テーブル１３４は、「ログ名」と、「上書き予測日数」と、「退避サイズ」と、「候補フラグ」と、「合計」と、を項目として有する。
【０１１９】
「ログ名」には、Ｓ４５で抽出したログ名が設定される。「上書き予測日数」には、Ｓ４６で算出した上書き予測日数が設定される。「退避サイズ」には、Ｓ３０でメッセージが検知された時（トラブル事象発生時）の調査対象情報が書き込まれた最新単位ログファイルのファイルサイズと、Ｓ４５で抽出したログ名が対応づけられた図７に示すログ参照頻度テーブル２３４中の「参照世代数」分の単位ログファイルのファイルサイズと、の合計ファイルサイズが設定される。「候補フラグ」には、「ログ名」が退避対象ローテーションログファイルであることを示す「１」又は「ログ名」が退避対象ローテーションログファイルでないことを示す「０」が設定される。「合計」には、「候補フラグ」に「１」が設定されている「退避サイズ」の合計が設定される。
【０１２０】
具体的には、プロセッサ１０１は、図１３（ａ）に示すように、退避候補ログ状態テーブル１３４の「ログ名」にＳ４５で抽出したログ名（ここでは、Ａログ）を設定する。また、プロセッサ１０１は、「上書き予測日数」にＳ４６で算出した上書き予測日数（ここでは、１４日）を設定する。また、プロセッサ１０１は、「退避サイズ」にＳ３０でメッセージが検知された時（トラブル事象発生時）の調査対象情報が書き込まれた最新単位ログファイル（ここでは最新単位ログファイルＡ３）のファイルサイズと、Ｓ４５で抽出したログ名（ここではＡログ）が対応づけられた図７に示すログ参照頻度テーブル２３４中の「参照世代数」（ここでは２）分の単位ログファイル（ここでは単位ログファイルＡ２、Ａ１）のファイルサイズと、の合計ファイルサイズ（ここでは１０ＭＢ）を設定する。そして、プロセッサ１０１は、「候補フラグ」に「０」を設定する。
【０１２１】
なお、退避サイズは、ローテーションログファイル１３１を構成する各々の単位ログファイルの最大サイズと退避ファイル数とを乗算することで求めることができる。
【０１２２】
次に、プロセッサ１０１は、Ｎ１に１を加算する（Ｓ４８）。
【０１２３】
次に、Ｓ４４に戻り、プロセッサ１０１は、Ｓ４２で抽出した行（項番）を参照して、項番Ｎ１（ここでは、Ｎ１＝２）の行が存在するか否かを判定する（Ｓ４４）。ここでは、図１２（ａ）に示すように、項番Ｎ１（ここでは、Ｎ１＝２）の行が存在するため、プロセッサ１０１は、項番Ｎ１の行が存在すると判定する（Ｓ４４：ＹＥＳ）。
【０１２４】
次に、プロセッサ１０１は、項番Ｎ１（ここでは、Ｎ１＝２）の行から、「ログ名」（ここでは、Ｂログ）を抽出する（Ｓ４５）。
【０１２５】
次に、プロセッサ１０１は、Ｓ４５で抽出した「ログ名」（ここでは、Ｂログ）に対する調査対象情報の出力速度であるログ出力速度を上記式１又は式２で測定し、最新単位ログファイル（ここでは、単位ログファイルＢ３）が上書きされるまでの上書き予測日数を上記式４で算出する（Ｓ４６）。
【０１２６】
次に、プロセッサ１０１は、算出した上書き予測日数、退避サイズ等を退避候補ログ状態テーブル１３４に設定する（Ｓ４７）。
【０１２７】
具体的には、プロセッサ１０１は、図１３（ｂ）に示すように、退避候補ログ状態テーブル１３４の「ログ名」にＳ４５で抽出したログ名（ここでは、Ｂログ）を設定する。また、プロセッサ１０１は、「上書き予測日数」にＳ４６で算出した上書き予測日数（ここでは、２日）を設定する。また、プロセッサ１０１は、「退避サイズ」にＳ３０でメッセージが検知された時（トラブル事象発生時）の調査対象情報が書き込まれた最新単位ログファイル（ここでは最新単位ログファイルＢ３）のファイルサイズと、Ｓ４５で抽出したログ名（ここではＢログ）が対応づけられた図７に示すログ参照頻度テーブル２３４中の「参照世代数」（ここでは１）分の単位ログファイル（ここでは単位ログファイルＢ２）のファイルサイズと、の合計ファイルサイズ（ここでは２０ＭＢ）を設定する。そして、プロセッサ１０１は、「候補フラグ」に「０」を設定する。
【０１２８】
次に、プロセッサ１０１は、Ｎ１に１を加算する（Ｓ４８）。
【０１２９】
次に、Ｓ４４に戻り、プロセッサ１０１は、Ｓ４２で抽出した行（項番）を参照して、項番Ｎ１（ここでは、Ｎ１＝３）の行が存在するか否かを判定する（Ｓ４４）。ここでは、図１２（ａ）に示すように、項番Ｎ１（ここでは、Ｎ１＝３）の行が存在しないため、プロセッサ１０１は、項番Ｎ１の行が存在しないと判定し（Ｓ４４：ＮＯ）、Ｓ４９の処理を実行する。
【０１３０】
すなわち、プロセッサ１０１は、図１３（ｃ）に示すように、退避候補ログ状態テーブル１３４中の「上書き予測日数」が、想定採取日数１３６（例えば、７日）より短い「ログ名」（ここでは、Ｂログ）を判定する。
【０１３１】
そして、プロセッサ１０１は、想定採取日数１３６（例えば、７日）より短いと判定した「ログ名」（ここではＢログ）の「候補フラグ」に、その「ログ名」（ここではＢログ）が退避対象ローテーションログファイルであることを示す「１」を設定する（Ｓ４９）。この場合、「候補フラグ」に「１」が設定されたログ名（ここではＢログ）の最新単位ログファイルＢ３及びそのログ名（ここではＢログ）が対応づけられたログ参照頻度テーブル２３４中の「参照世代数」（ここでは１）分の単位ログファイルＢ２が、退避対象単位ログファイルであることを表す。
【０１３２】
次に、プロセッサ１０１は、「候補フラグ」に「１」が設定されている「退避サイズ」の合計を算出して、図１３（ｃ）に示すように、退避候補ログ状態テーブル１３４の「合計」に設定する（Ｓ５０）。
【０１３３】
なお、例えば、Ｓ５０において、退避候補ログ状態テーブル１３４に「１」が設定された「候補フラグ」が存在しない場合、退避・削除処理（Ｓ１３−２）を終了してもよい。
【０１３４】
［Ｓ２２の詳細処理］
図１４は、図６に示すＳ２２の詳細処理のフローチャートである。図１５は、削除候補ログ状態テーブル１３５の例である。以下の処理は、プロセッサ１０１が、ログファイル制御プログラム１１０ｃを実行することで行う。
【０１３５】
まず、プロセッサ１０１は、削除候補ログ状態テーブル１３５の「合計サイズ」に「０」を設定する（Ｓ６０）。
【０１３６】
次に、プロセッサ１０１は、図７に示すログ参照頻度テーブル２３４を参照して、Ｓ３０で検知した「メッセージ」（XX Error）が設定されている行（ここでは、項番１、２の２行）以外の行（ここでは、項番３、４の２行）を抽出する（Ｓ６１）。次に、プロセッサ１０１は、抽出した行を参照回数の少ない順にソートする（Ｓ６２）。次に、プロセッサ１０１は、ソートした行から参照回数が第２閾値以下の行を抽出する（Ｓ６３）。ここでは、図１２（ｂ）に示す２行が抽出されたものとする。ここでは、説明を分かりやすくするために、１から始まるように項番をふり直すものとする。
【０１３７】
次に、プロセッサ１０１は、Ｓ６３で抽出した行（項番）を示すＮ２に１を設定する（Ｓ６４）。
【０１３８】
次に、プロセッサ１０１は、Ｓ６３で抽出した行（項番）を参照して、項番Ｎ２（ここでは、Ｎ２＝１）の行が存在するか否かを判定する（Ｓ６５）。ここでは、図１２（ｂ）に示すように、項番Ｎ２（ここでは、Ｎ２＝１）の行が存在するため、プロセッサ１０１は、項番Ｎ２の行が存在すると判定する（Ｓ６５：ＹＥＳ）。
【０１３９】
次に、プロセッサ１０１は、項番Ｎ２（ここでは、Ｎ２＝１）の行から、「ログ名」（ここでは、Ｄログ）を抽出する（Ｓ６６）。
【０１４０】
次に、プロセッサ１０１は、Ｓ６６で抽出した「ログ名」（ここでは、Ｄログ）に対する調査対象情報の出力速度であるログ出力速度を上記式１又は式２で測定し、最新単位ログファイル（ここでは、単位ログファイルＤ３）が上書きされるまでの上書き予測日数を上記式４で算出する（Ｓ６７）。
【０１４１】
次に、プロセッサ１０１は、算出した上書き予測日数等を削除候補ログ状態テーブル１３５に設定する（Ｓ６８）。
【０１４２】
図１５は、削除候補ログ状態テーブル１３５を説明する図である。図１５に示す削除候補ログ状態テーブル１３５は、「ログ名」と、「上書き予測日数」と、「余裕サイズ」と、「候補フラグ」と、「合計」と、を項目として有する。
【０１４３】
「ログ名」には、Ｓ６６で抽出したログ名が設定される。「上書き予測日数」には、Ｓ６７で算出した上書き予測日数が設定される。「余裕サイズ」には、Ｓ７１で算出した余裕サイズが設定される。「候補フラグ」には、「ログ名」が削除対象ローテーションログファイルであることを示す「１」又は「ログ名」が削除対象ローテーションログファイルでないことを示す「０」が設定される。「合計」には、「余裕サイズ」の合計が設定される。
【０１４４】
具体的には、プロセッサ１０１は、図１５（ａ）に示すように、削除候補ログ状態テーブル１３５の「ログ名」にＳ６６で抽出したログ名（ここでは、Ｄログ）を設定する。また、プロセッサ１０１は、「上書き予測日数」にＳ６７で算出した上書き予測日数（ここでは、１４日）を設定する。また、プロセッサ１０１は、「余裕サイズ」に「０」を設定する。そして、プロセッサ１０１は、「候補フラグ」に「０」を設定する。
【０１４５】
次に、プロセッサ１０１は、Ｎ２に１を加算する（Ｓ６９）。
【０１４６】
次に、Ｓ６５に戻り、プロセッサ１０１は、Ｓ６３で抽出した行（項番）を参照して、項番Ｎ２（ここでは、Ｎ２＝２）の行が存在するか否かを判定する（Ｓ６５）。ここでは、図１２（ｂ）に示すように、項番Ｎ２（ここでは、Ｎ２＝２）の行が存在するため、プロセッサ１０１は、項番Ｎ２の行が存在すると判定する（Ｓ６５：ＹＥＳ）。
【０１４７】
次に、プロセッサ１０１は、項番Ｎ２（ここでは、Ｎ２＝２）の行から、「ログ名」（ここでは、Ｃログ）を抽出する（Ｓ６６）。
【０１４８】
次に、プロセッサ１０１は、Ｓ６６で抽出した「ログ名」（ここでは、Ｃログ）に対する調査対象情報の出力速度であるログ出力速度を上記式１又は式２で測定し、最新単位ログファイル（ここでは、単位ログファイルＣ３）が上書きされるまでの上書き予測日数を上記式４で算出する（Ｓ６７）。
【０１４９】
次に、プロセッサ１０１は、算出した上書き予測日数等を削除候補ログ状態テーブル１３５に設定する（Ｓ６８）。
【０１５０】
具体的には、プロセッサ１０１は、図１５（ｂ）に示すように、削除候補ログ状態テーブル１３５の「ログ名」にＳ６６で抽出したログ名（ここでは、Ｃログ）を設定する。また、プロセッサ１０１は、「上書き予測日数」にＳ６７で算出した上書き予測日数（ここでは、２０日）を設定する。また、プロセッサ１０１は、「余裕サイズ」に「０」を設定する。そして、プロセッサ１０１は、「候補フラグ」に「０」を設定する。
【０１５１】
次に、プロセッサ１０１は、Ｎ２に１を加算する（Ｓ６９）。
【０１５２】
次に、Ｓ６５に戻り、プロセッサ１０１は、Ｓ６３で抽出した行（項番）を参照して、項番Ｎ２（ここでは、Ｎ２＝３）の行が存在するか否かを判定する（Ｓ６５）。ここでは、図１２（ｂ）に示すように、項番Ｎ２（ここでは、Ｎ２＝３）の行が存在しないため、プロセッサ１０１は、項番Ｎ２の行が存在しないと判定し（Ｓ６５：ＮＯ）、Ｓ７０の処理を実行する。
【０１５３】
すなわち、プロセッサ１０１は、図１５（ｃ）に示すように、削除候補ログ状態テーブル１３５中の「上書き予測日数」が、想定採取日数１３６（例えば、７日）より長い「ログ名」（ここでは、Ｄログ、Ｃログ）を判定する。
【０１５４】
そして、プロセッサ１０１は、想定採取日数１３６（例えば、７日）より長いと判定した「ログ名」（ここではＣログ、Ｄログ）の「候補フラグ」に、その「ログ名」（ここではＣログ、Ｄログ）が削除対象ローテーションログファイルであることを示す「１」を設定する（Ｓ７０）。
【０１５５】
次に、プロセッサ１０１は、「候補フラグ」が「１」の「ログ名」（ここでは、Ｄログ、Ｃログ）の余裕サイズを算出し、図１５（ｃ）に示すように、算出した余裕サイズを、削除候補ログ状態テーブル１３５の「余裕サイズ」に設定し、その余裕サイズの合計を算出して「合計」に加算する（Ｓ７１）。
【０１５６】
[余裕サイズの算出手法]
以下、一例として、Ｃログ、すなわち、ローテーションログファイル１３１Ｃの余裕サイズの算出方法を説明する。
【０１５７】
まず、最新単位ログファイルＣ３の上書きまでの日数猶予Dtを、次の式５で計算する。
Dt = Dnup-Do  ・・・（式５）
【０１５８】
但し、Dnupはローテーションログファイル１３１Ｃの最新単位ログファイルＣ３が上書きされるまでの上書き予測日数で、上記式４で算出できる。なお、上記式４のXには、削除時に残すファイル数を設定する。図８（Ｃ）の例では、Xは１である。Doは想定採取日数１３６である。
【０１５９】
次に、余裕サイズStを、次の式６で計算する。
St = Vup*Dt  ・・・（式６）
【０１６０】
但し、Vupは上記式１又は式２で算出したローテーションログファイル１３１Ｃに対するログ出力速度である。
【０１６１】
以上のようにしてローテーションログファイル１３１Ｃの余裕サイズを算出することができる。同様に、ローテーションログファイル１３１Ｄの余裕サイズも算出することができる。
【０１６２】
[Ｓ２４の詳細処理]
図１６は、図６に示すＳ２４の詳細処理のフローチャートである。以下の処理は、プロセッサ１０１が、ログファイル制御プログラム１１０ｃを実行することで行う。
【０１６３】
まず、プロセッサ１０１は、削除候補ログ状態テーブル１３５の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル１３４の「退避サイズ」の合計以上か否かを判定する（Ｓ８０）。
【０１６４】
その結果、削除候補ログ状態テーブル１３５の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル１３４の「退避サイズ」の合計以上の場合（Ｓ８０：ＹＥＳ）、プロセッサ１０１は、Ｓ７０で判定された削除対象ローテーションログファイル１３１Ｃ、１３１Ｄを構成する複数の単位ログファイルのうち、少なくとも一部を削除する（Ｓ８１）。例えば、プロセッサ１０１は、削除対象ローテーションログファイルＣ、Ｄを構成する複数の単位ログファイルＣ１〜Ｃ６、Ｄ１〜Ｄ５のうち、最新単位ログファイルＣ３、Ｄ３以外の単位ログファイルＣ１〜Ｃ２、Ｃ４〜Ｃ６、Ｄ１〜Ｄ２、Ｄ４〜Ｃ５を削除する。
【０１６５】
一方、削除候補ログ状態テーブル１３５の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル１３４の「退避サイズ」の合計以上でない場合（Ｓ８０：ＮＯ）、プロセッサ１０１は、動作設定情報１３７を参照して（Ｓ８２）、動作設定情報１３７に設定された動作を行う。
【０１６６】
図１７は、動作設定情報の一例である。動作設定情報１３７は、例えば、configファイル等の形式でストレージ１０４に記憶されている。
【０１６７】
動作設定情報１３７には、「可能な範囲で削除して退避：deletesave」、「削除せず退避のみ：saveonly」、「削除も退避も実施せず：none」のいずれかを設定することができる。図１７に示す動作設定情報１３７は、「削除せず退避のみ：saveonly」が設定されていることを表す。
【０１６８】
図１６に戻り、動作設定情報１３７を参照した結果、動作設定情報１３７に「可能な範囲で削除を実施して退避」が設定されている場合（Ｓ８３：ＹＥＳ）、プロセッサ１０１は、採取監視プログラム１１０ｅに対して削除が不十分であることを通知する(Ｓ８４）。そして、プロセッサ１０１は、削除候補がある場合（Ｓ８５：ＮＯ）、すなわち、削除候補ログ状態テーブル１３５を参照して、「候補フラグ」に「１」が設定された「ログ名」が存在する場合、「候補フラグ」に「１」が設定された「ログ名」のローテーションログファイルを削除する（Ｓ８１）。一方、プロセッサ１０１は、削除候補がない場合（Ｓ８５：ＹＥＳ）、すなわち、「候補フラグ」に「１」が設定された「ログ名」が存在しない場合、処理を終了する。
【０１６９】
一方、Ｓ８２で動作設定情報１３７を参照した結果、動作設定情報１３７に「削除せずに退避のみ実施」が設定されている場合（Ｓ８３：ＮＯ、Ｓ８６：ＹＥＳ）、プロセッサ１０１は、採取監視プログラム１１０ｅに対して削除を実施しなかったことを通知する（Ｓ８７）。
【０１７０】
一方、Ｓ８２で動作設定情報１３７を参照した結果、動作設定情報１３７に「削除も退避も実施せず」が設定されている場合（Ｓ８３：ＮＯ、Ｓ８６：ＮＯ）、プロセッサ１０１は、退避候補ログ状態テーブル１３４に設定されている退避候補の内容を削除する（Ｓ８８）。そして、プロセッサ１０１は、採取監視プログラム１１０ｅに対して削除も退避も実施しなかったことを通知する（Ｓ８９）。
【０１７１】
[Ｓ２６の詳細処理]
図１８は、図６に示すＳ２６の詳細処理のフローチャートである。以下の処理は、プロセッサ１０１が、ログファイル制御プログラム１１０ｃを実行することで行う。
【０１７２】
まず、プロセッサ１０１は、退避候補（退避対象ローテーションログファイル１３１）が存在するか否かを判定する（Ｓ９０）。具体的には、プロセッサ１０１は、退避候補ログ状態テーブル１３４を参照して、「候補フラグ」に「１」が設定されている「ログ名」が存在するか否かを判定する。
【０１７３】
ここでは、図１３（ｃ）に示す退避候補ログ状態テーブル１３４を参照すると、退避候補ログ状態テーブル１３４の「候補フラグ」に「１」が設定されており、退避候補（退避対象ローテーションログファイル１３１Ｂ）が存在するため（Ｓ９０：ＹＥＳ）、プロセッサ１０１は、退避候補（退避対象ローテーションログファイル１３１Ｂ）の退避対象単位ログファイルＢ３、Ｂ２に調査対象情報（ログ）を出力中か否かを判定する（Ｓ９１）。
【０１７４】
プロセッサ１０１は、退避候補（退避対象ローテーションログファイル１３１Ｂ）の退避対象単位ログファイルＢ３、Ｂ２へのログ出力が終了するまで待機する（Ｓ９１：ＹＥＳ）。
【０１７５】
そして、退避候補（退避対象ローテーションログファイル１３１Ｂ）の退避対象単位ログファイルＢ３、Ｂ２へのログ出力が終了した場合（Ｓ９１：ＮＯ）、プロセッサ１０１は、退避候補（退避対象ローテーションログファイル１３１Ｂ）の退避対象単位ログファイルＢ３、Ｂ２を退避する（Ｓ９２）。具体的には、プロセッサ１０１は、退避対象単位ログファイルＢ３、Ｂ２を退避対象ローテーションログファイルから別の名前にリネームすることで退避する。
【０１７６】
次に、プロセッサ１０１は、採取監視プログラム１１０ｅに対して退避したファイル名を通知する（Ｓ９３）。
【０１７７】
［採取監視プログラム］
図１９は、採取監視プログラム１１０ｅの詳細処理のフローチャートである。以下の処理は、プロセッサ１０１が、採取監視プログラム１１０ｅを実行することで行う。
【０１７８】
プロセッサ１０１は、ログファイル制御プログラム１１０ｃからの通知（Ｓ８４、Ｓ８７、Ｓ８９）又はログ採取端末１１からの通知を受信するまで待機し（Ｓ１００：ＮＯ）、通知を受信すると（Ｓ１００；ＹＥＳ）、受信した通知に応じた処理を実行する。
【０１７９】
具体的には、Ｓ１００で受信した通知がログファイル制御プログラム１１０ｃからの通知の場合（Ｓ１０１：ＹＥＳ）、プロセッサ１０１は、ログ採取端末１１にアクセスして、受信した通知をログ採取端末１１のディスプレイ（図示せず）に表示する（Ｓ１０６）。
【０１８０】
そして、ログが採取済みの場合（Ｓ１０７：ＹＥＳ）、ステップ１００に戻って通知を受信するまで待機する（Ｓ１００：ＮＯ）。
【０１８１】
一方、ログが採取済みでない場合（Ｓ１０７：ＮＯ）、プロセッサ１０１は、ログ採取端末１１にアクセスしてログ採取を促すメッセージを、ログ採取端末１１のディスプレイ（図示せず）に表示する。これとともに、同じ内容のメールを所定メールアドレス宛に送付する（Ｓ１０８）。その後、ステップ１００に戻って通知を受信するまで待機する（Ｓ１００：ＮＯ）。
【０１８２】
ログ採取端末１１に表示されたログ採取を促すメッセージ又は所定メールアドレス宛に送付されたメール内容を確認したシステム管理者等が、ログ採取端末１１からログ採取依頼を入力し、採取監視プログラム１１０ｅがそのログ採取依頼を受信した場合（Ｓ１００：ＹＥＳ、Ｓ１０１：ＮＯ、Ｓ１０２：ＹＥＳ）、プロセッサ１０１は、ログを採取する（Ｓ１０３）。例えば、Ｓ９２でリネームすることで退避された退避ログファイルＢ２´、Ｂ３´を採取ログ格納部１１ａへコピーする。その後、プロセッサ１０１は、退避ログファイルＢ２´、Ｂ３´を削除する（Ｓ１０４）。そして、プロセッサ１０１は、ログ採取の完了と退避ログファイルＢ２´、Ｂ３´の削除を、ログ採取端末１１のディスプレイ（図示せず）に表示する（Ｓ１０５）。
【０１８３】
以上のように、本実施形態によれば、ログ出力先ファイルが循環的に切り替えられる（ローテーションされる）ことに起因して、調査に必要なログが記録されたファイル（例えば、リネーム後の単位ログファイルＢ２、Ｂ３。つまり、退避ログファイルＢ２´、Ｂ３´）が消去されるのを防止することができる。
【０１８４】
また、本実施形態によれば、業務システム１の環境や運用状況によって（例えば、トラブル事象に誘発されて）調査対象情報の出力量が想定以上となったとしても、調査に必要な単位ログファイル（リネーム後の単位ログファイル。つまり、退避ログファイルＢ２´、Ｂ３´）を、採取予定日に採取することができる。
【０１８５】
図２０は、ログ参照頻度管理装置２の構成を示す図である。図２０に示すように、ログ参照頻度管理装置２は、プロセッサ２０１と、主記憶装置であるメインメモリ２０２と、ＮＩＣ(Network Interface Card)２０３と、バス２０５と、補助記憶装置であるストレージ２０４（例えば、ハードディスク装置）と、を有する。ストレージ２０４内には、ＯＳ(Operating System)２１０ａ、ＯＳ２１０ａ上で実行されるプログラム、例えば、ログ参照頻度テーブル作成プログラム２１０ｂが記憶されている。これらのプログラムは、メモリ２０２に展開されプロセッサ２０１により実行される。ログ参照頻度管理装置２は、プロセッサ２０１がログ参照頻度テーブル作成プログラム２１０ｂを実行することで、ログ参照頻度テーブル２３４を作成するログ参照頻度テーブル作成装置として動作する。
【０１８６】
また、ストレージ２０４内には、ログ一覧２３１、トラブル事例２３２、ログ参照頻度テーブル２３４が記憶されている。
【０１８７】
［ログ参照頻度テーブル作成プログラム２１０ｂ］
図２１、図２２は、ログ参照頻度テーブル作成プログラム２１０ｂの詳細処理のフローチャートである。
【０１８８】
以下の処理は、プロセッサ２０１が、ログ参照頻度テーブル作成プログラム２１０ｂを実行することで行う。図２３は、ログ参照頻度テーブル２３４の例である。図２４〜図３５は、ログ参照頻度テーブル作成過程における各テーブルの状態遷移を表す図である。以下、説明を簡単にするため、図２３に示すログ参照頻度テーブル２３４を作成する例について説明する。図２１、図２２に示す処理は、例えば、定期的に（例えば、週一回、月一回）実行される。
【０１８９】
まず、プロセッサ２０１は、ログ一覧２３１の行（項番）を示すＮ３に１を設定する（Ｓ１１０）。
【０１９０】
図２４には、ログ一覧２３１の一例が示されている。図２４に示すログ一覧２３１は、ログ一覧２３１に含まれる各情報を識別する「項番」と、ローテーションログファイルの識別情報が設定される「ログ名」と、を項目として有する。ログ一覧２３１の各項目は、例えば、サポート員等によって手入力される。ログ一覧２３１に設定される「ログ名」は、時間の経過とともに増減し得る。
【０１９１】
次に、プロセッサ２０１は、ログ一覧２３１を参照して、項番Ｎ３（ここでは、Ｎ３＝１）の行が存在するか否かを判定する（Ｓ１１１）。
【０１９２】
ここでは、図２４に示すように、項番Ｎ３（ここでは、Ｎ３＝１）の行が存在するため、プロセッサ２０１は、項番Ｎ３の行が存在すると判定する（Ｓ１１１：ＹＥＳ）。
【０１９３】
次に、プロセッサ２０１は、トラブル事例２３２を参照して、第１検索条件を満たす行が存在する場合（Ｓ１１２：ＹＥＳ）、トラブル事例２３２から、第１検索条件を満たす行を１件抽出する（Ｓ１１３）。
【０１９４】
図２４には、トラブル事例２３２の一例が示されている。図２４に示すトラブル事例２３２は、トラブル事例２３２に含まれる各情報を識別する「項番」と、メッセージの識別情報が設定される「メッセージ」と、「メッセージ」の原因調査のために過去に参照されたローテーションログファイルの識別情報が設定される「参照ログ名」と、「メッセージ（トラブル事象）」の原因調査のために過去に参照された「ログ名」の世代数が設定される「参照世代数」と、「メッセージ」が解決したか否かが設定される「状況」と、「項番」の行がＳ１１３で抽出済みか否かが設定される「抽出済フラグ」と、を項目として有する。トラブル事例２３２の各項目は、例えば、サポート員等によって手入力される。サポート員等は、トラブル事象が発生する都度、必要な項目をトラブル事例２３２に設定する。
【０１９５】
第１検索条件は、トラブル事例２３２の「参照ログ名」が項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）で、「抽出済みフラグ」が未抽出であることを表す「０」で、「状況」が「クローズ済」であるという条件である。
【０１９６】
ここでは、プロセッサ２０１は、図２４に「抽出」で示すように、第１検索条件を満たす行として、トラブル事例２３２から項番１の行を抽出する（Ｓ１１３）。なお、第１検索条件を満たす行が複数抽出された場合、プロセッサ２０１は、例えば、項番の最も若い行を１件抽出する。
【０１９７】
次に、プロセッサ２０１は、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されているか否かを判定する（Ｓ１１４）。
【０１９８】
ここでは、図２４に示すように、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されていない（Ｓ１１４：ＮＯ）。
【０１９９】
そのため、プロセッサ２０１は、図２５に「設定」で示すように、ログ参照頻度テーブル２３４の「メッセージ」、「ログ名」、「参照世代数」に、それぞれ、Ｓ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）、「参照ログ名」（ここでは、Ａログ）、参照世代数「２」を設定する（Ｓ１１５）。そして、ログ参照頻度テーブル２３４の「参照回数」に、「メッセージ」（ここでは、XX Error）を含む行の抽出回数「１」を設定する。
【０２００】
次に、プロセッサ２０１は、ログ参照頻度テーブル２３４から第２検索条件を満たす行を検索し、検索できれば、その行を削除する（Ｓ１１６）。第２検索条件は、ログ参照頻度テーブル２３４の「ログ名」が項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）で、「メッセージ」が「−」（メッセージが何も設定されていないことを示す）で、「参照回数」が「０」であるという条件である。
【０２０１】
次に、プロセッサ２０１は、図２６に示すように、Ｓ１１３で抽出した行（項番１）の「抽出済フラグ」に「１」を設定する（Ｓ１１７）。
【０２０２】
次に、Ｓ１１２に戻り、プロセッサ２０１は、トラブル事例２３２を参照して、第１検索条件を満たす行が存在する場合（Ｓ１１２：ＹＥＳ）、トラブル事例２３２から、第１検索条件を満たす行を１件抽出する（Ｓ１１３）。
【０２０３】
ここでは、プロセッサ２０１は、図２６に「抽出」で示すように、第１検索条件を満たす行として、トラブル事例２３２から項番４の行を抽出する（Ｓ１１３）。なお、第１検索条件を満たす情報が複数件抽出された場合、プロセッサ２０１は、例えば、項番の最も若いものを１件抽出する。
【０２０４】
次に、プロセッサ２０１は、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されているか否かを判定する（Ｓ１１４）。
【０２０５】
ここでは、図２６に示すように、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されている（Ｓ１１４：ＹＥＳ）。
【０２０６】
そのため、プロセッサ２０１は、図２７に示すように、ログ参照頻度テーブル２３４の項番１の「参照回数」に「１」を加算する（Ｓ１１８）。
【０２０７】
次に、プロセッサ２０１は、図２８に示すように、Ｓ１１３でトラブル事例から抽出した項番４の行中の「抽出済フラグ」に「１」を設定する（Ｓ１１７）。
【０２０８】
プロセッサ２０１は、トラブル事例２３２に第１検索条件を満たす行が存在しなくなるまで（Ｓ１１２：ＮＯ）、上記Ｓ１１２〜Ｓ１１８の処理を繰り返し実行する。
【０２０９】
そして、トラブル事例２３２に第１検索条件を満たす情報が存在しなくなった場合（Ｓ１１２：ＮＯ）、Ｓ１１９の処理を実行する。
【０２１０】
すなわち、プロセッサ２０１は、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）が設定されているか否かを判定する（Ｓ１１９）。
【０２１１】
ここでは、図２８に示すように、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝１）の「ログ名」（ここでは、Ａログ）が設定されているため（Ｓ１１９：ＹＥＳ）、プロセッサ２０１は、Ｎ３に１を加算する（Ｓ１２０）。
【０２１２】
次に、Ｓ１１１に戻り、プロセッサ２０１は、ログ一覧２３１を参照して、項番Ｎ３（ここでは、Ｎ３＝２）の行が存在するか否かを判定する（Ｓ１１１）。
【０２１３】
ここでは、図２９に示すように、項番Ｎ３（ここでは、Ｎ３＝２）の行が存在するため、プロセッサ２０１は、項番Ｎ３の行が存在すると判定する（Ｓ１１１：ＹＥＳ）。
【０２１４】
次に、プロセッサ２０１は、トラブル事例２３２を参照して、第１検索条件を満たす行が存在する場合（Ｓ１１２：ＹＥＳ）、トラブル事例２３２から、第１検索条件を満たす行を１件抽出する（Ｓ１１３）。
【０２１５】
第１検索条件は、トラブル事例２３２の「参照ログ名」が項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）で、「抽出済みフラグ」が未抽出であることを表す「０」で、「状況」が「クローズ済」であるという条件である。
【０２１６】
ここでは、プロセッサ２０１は、図２９に「抽出」で示すように、第１検索条件を満たす行として、トラブル事例２３２から項番２の行を抽出する（Ｓ１１３）。なお、第１検索条件を満たす行が複数抽出された場合、プロセッサ２０１は、例えば、項番の最も若い行を１件抽出する。
【０２１７】
次に、プロセッサ２０１は、項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されているか否かを判定する（Ｓ１１４）。
【０２１８】
ここでは、図２９に示すように、項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）とＳ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）との組み合わせが、ログ参照頻度テーブル２３４に設定されていない（Ｓ１１４：ＮＯ）。
【０２１９】
そのため、プロセッサ２０１は、図３０に「設定」で示すように、ログ参照頻度テーブル２３４の「メッセージ」、「ログ名」、「参照世代数」に、それぞれ、Ｓ１１３で抽出された行中の「メッセージ」（ここでは、XX Error）、「参照ログ名」（ここでは、Ｂログ）、参照世代数「１」を設定する（Ｓ１１５）。そして、ログ参照頻度テーブル２３４の「参照回数」に、「メッセージ」（ここでは、XX Error）を含む行の抽出回数「１」を設定する。
【０２２０】
次に、プロセッサ２０１は、ログ参照頻度テーブル２３４から第２検索条件を満たす行を検索し、検索できれば、その行を削除する（Ｓ１１６）。第２検索条件は、ログ参照頻度テーブル２３４の「ログ名」が項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）で、「メッセージ」が「−」（メッセージが何も設定されていないことを示す）で、「参照回数」が「０」であるという条件である。
【０２２１】
次に、プロセッサ２０１は、図３１に示すように、Ｓ１１３で抽出した行（項番２）の「抽出済フラグ」に「１」を設定する（Ｓ１１７）。
【０２２２】
プロセッサ２０１は、トラブル事例２３２に第１検索条件を満たす行が存在しなくなるまで（Ｓ１１２：ＮＯ）、上記Ｓ１１２〜Ｓ１１８の処理を繰り返し実行する。
【０２２３】
そして、トラブル事例２３２に第１検索条件を満たす情報が存在しなくなった場合（Ｓ１１２：ＮＯ）、Ｓ１１９の処理を実行する。
【０２２４】
すなわち、プロセッサ２０１は、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）が設定されているか否かを判定する（Ｓ１１９）。
【０２２５】
ここでは、図３１に示すように、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝２）の「ログ名」（ここでは、Ｂログ）が設定されているため（Ｓ１１９：ＹＥＳ）、プロセッサ２０１は、Ｎ３に１を加算する（Ｓ１２０）。
【０２２６】
次に、Ｓ１１１に戻り、プロセッサ２０１は、ログ一覧２３１を参照して、項番Ｎ３（ここでは、Ｎ３＝３）の行が存在するか否かを判定する（Ｓ１１１）。
【０２２７】
ここでは、図３２に示すように、項番Ｎ３（ここでは、Ｎ３＝３）の行が存在するため、プロセッサ２０１は、項番Ｎ３の行が存在すると判定する（Ｓ１１１：ＹＥＳ）。
【０２２８】
次に、プロセッサ２０１は、トラブル事例２３２を参照して、第１検索条件を満たす行が存在する場合（Ｓ１１２：ＹＥＳ）、トラブル事例２３２から、第１検索条件を満たす行を１件抽出する（Ｓ１１３）。
【０２２９】
第１検索条件は、トラブル事例２３２の「参照ログ名」が項番Ｎ３（ここでは、Ｎ３＝３）の「ログ名」（ここでは、Ｃログ）で、「抽出済みフラグ」が未抽出であることを表す「０」で、「状況」が「クローズ済」であるという条件である。
【０２３０】
ここでは、第１検索条件を満たす行は存在しないため（Ｓ１１２：ＮＯ）、プロセッサ２０１は、Ｓ１１９の処理を実行する。
【０２３１】
すなわち、プロセッサ２０１は、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝３）の「ログ名」（ここでは、Ｃログ）が設定されているか否かを判定する（Ｓ１１９）。
【０２３２】
ここでは、図３２に示すように、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝３）の「ログ名」（ここでは、Ｃログ）が設定されていないため（Ｓ１１９：ＮＯ）、プロセッサ２０１は、図３３に示すように、ログ参照頻度テーブル２３４の「メッセージ」に「−」を設定し、「ログ名」に項番Ｎ３（ここでは、Ｎ３＝３）の「ログ名」（ここでは、Ｃログ）を設定し、「参照回数」に「０」を設定し、「参照世代数」に「−」を設定する（Ｓ１２１）。
【０２３３】
次に、プロセッサ２０１は、Ｎ３に１を加算する（Ｓ１２０）。
【０２３４】
次に、Ｓ１１１に戻り、プロセッサ２０１は、ログ一覧２３１を参照して、項番Ｎ３（ここでは、Ｎ３＝４）の行が存在するかを判定する（Ｓ１１１）。
【０２３５】
ここでは、図３４に示すように、項番Ｎ３（ここでは、Ｎ３＝４）の行が存在するため、プロセッサ２０１は、項番Ｎ３の行が存在すると判定する（Ｓ１１１：ＹＥＳ）。
【０２３６】
次に、プロセッサ２０１は、トラブル事例２３２を参照して、第１検索条件を満たす行が存在する場合（Ｓ１１２：ＹＥＳ）、トラブル事例２３２から、第１検索条件を満たす行を１件抽出する（Ｓ１１３）。
【０２３７】
第１検索条件は、トラブル事例２３２の「参照ログ名」が項番Ｎ３（ここでは、Ｎ３＝４）の「ログ名」（ここでは、Ｄログ）で、「抽出済みフラグ」が未抽出であることを表す「０」で、「状況」が「クローズ済」であるという条件である。
【０２３８】
ここでは、第１検索条件を満たす情報は存在しないため（Ｓ１１２：ＮＯ）、プロセッサ２０１は、Ｓ１１９の処理を実行する。
【０２３９】
すなわち、プロセッサ２０１は、ログ参照頻度テーブル２３４に、項番Ｎ３（ここでは、Ｎ３＝４）の「ログ名」（ここでは、Ｄログ）が設定されているか否かを判定する（Ｓ１１９）。
【０２４０】
ここでは、図３４に示すように、ログ参照頻度テーブル２３４に、ログ一覧２３１の項番Ｎ３（ここでは、Ｎ３＝４）の「ログ名」（ここでは、Ｄログ）が設定されていないため（Ｓ１１９：ＮＯ）、プロセッサ２０１は、図３５に示すように、ログ参照頻度テーブル２３４の「メッセージ」に「−」を設定し、「ログ名」にログ一覧２３１の項番Ｎ３（ここでは、Ｎ３＝４）の「ログ名」（ここでは、Ｄログ）を設定し、「参照回数」に「０」を設定し、「参照世代数」に「−」を設定する（Ｓ１２１）。
【０２４１】
次に、プロセッサ２０１は、Ｎ３に１を加算する（Ｓ１２０）。
【０２４２】
次に、Ｓ１１１に戻り、プロセッサ２０１は、ログ一覧２３１の項番Ｎ３（ここでは、Ｎ３＝５）の「ログ名」が存在するか否かを判定する（Ｓ１１１）が、図３５に示すように、ログ一覧２３１の項番Ｎ３（ここでは、Ｎ３＝５）の「ログ名」が存在しない（Ｓ１１１：ＮＯ）ため、プロセッサ２０１は、処理を終了する。
【０２４３】
ログ参照頻度管理装置２は、上記のように作成したログ参照頻度テーブル２３４は、所定タイミング（例えば、週に一回）で、上記のようにして作成されたログ参照頻度テーブル２３４を業務システム１に対して配信する。業務システム１は、配信されたログ参照頻度テーブル２３４をストレージ１０４に記憶する。
【０２４４】
次に、変形例について説明する。
【０２４５】
図３６は、変形例について説明するための図である。
【０２４６】
上記実施形態では、一つのファイルシステムを用い、一つのファイルシステムにローテーションログファイル１３１として、例えば、４つのローテーションログファイル（Ａログ、Ｂログ、Ｃログ、Ｄログ）を記憶した例（図１、図２参照）について説明したが、これに限らない。
【０２４７】
例えば、複数のファイルシステムを用い、各ファイルシステムにローテーションログファイル１３１を記憶してもよい。例えば、図３６に示すように、ファイルシステムＥにローテーションログファイル１３１として、例えば、４つのローテーションログファイル（Ａログ、Ｂログ、Ｃログ、Ｄログ）を記憶し、ファイルシステムＦにローテーションログファイル１３１として、例えば、３つのローテーションログファイル（Ｇログ、Ｈログ、Ｉログ）を記憶してもよい。
【０２４８】
この場合、ファイルシステムごとに、図５に示す削除・退避処理を実行し、退避候補ログ状態テーブル１３４と削除候補ログ状態テーブル１３５をファイルシステムごとに作成し、ファイルの退避、削除を実行することで、上記実施形態と同様の効果を奏することができる。
【０２４９】
以上の実施の形態をまとめると、以下の付記の通りである。
【０２５０】
（付記１）
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、
処理をコンピュータに実行させるログファイル制御プログラム。
【０２５１】
（付記２）
付記１において、
前記ローテーションログファイルは、書き込まれた調査対象情報が前記単位ログファイルのサイズに達すると、調査対象情報の書き込み先の単位ログファイルが次の単位ログファイルに切り替えられ、前記複数の単位ログファイルを循環して切り替えられるログファイル制御プログラム。
【０２５２】
（付記３）
付記１又は２において、
前記退避対象単位ログファイルの上書きされるまでの上書き予測時間は、想定採取時までの時間より短いログファイル制御プログラム。
【０２５３】
（付記４）
付記３において、
前記上書き予測時間Dnupは、次の式
Dnup=(Gmax-X)*Smax/Vup +(Smax-Sn)/Vup
（Gmaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの数、Xは、退避される単位ログファイルの数、Smaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの最大サイズ、Snは、前記退避対象単位ログファイルのファイルサイズ、Vupは、前記退避対象ローテーションログファイルに対する調査対象情報の出力速度である）
で表されるログファイル制御プログラム。
【０２５４】
（付記５）
付記４において、
前記余裕サイズStは、次の式
St=Vup*(Dnup-Do)
（Doは、前記想定採取時までの時間である）
で表されるログファイル制御プログラム。
【０２５５】
（付記６）
付記１において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも前記退避対象単位ログファイル分の単位ログファイルを削除するログファイル制御プログラム。
【０２５６】
（付記７）
付記６において、
前記少なくとも一部を削除する処理では、
前記余裕サイズのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイルから所定世代前の単位ログファイルを削除するログファイル制御プログラム。
【０２５７】
（付記８）
付記１において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイル以外の単位ログファイルを削除するログファイル制御プログラム。
【０２５８】
（付記９）
付記１から７のいずれかにおいて、
前記リネームすることで退避する処理は、前記退避対象単位ログファイルに加え、該退避対象単位ログファイルから所定世代前の単位ログファイルをリネームすることで退避するログファイル制御プログラム。
【０２５９】
（付記１０）
メモリと、
前記メモリに接続されたプロセッサとを有し、
前記プロセッサは、
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御装置。
【０２６０】
（付記１１）
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第１の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第２の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御方法。
【符号の説明】
【０２６１】
１：業務システム、１ａ：ログファイル制御装置、２：ログ参照頻度管理装置、１１：ログ採取端末
【図１】
2019086880.tif 000003
【図２】
2019086880.tif 000004
【図３】
2019086880.tif 000005
【図４】
2019086880.tif 000006
【図５】
2019086880.tif 000007
【図６】
2019086880.tif 000008
【図７】
2019086880.tif 000009
【図８】
2019086880.tif 000010
【図９】
2019086880.tif 000011
【図１０】
2019086880.tif 000012
【図１１】
2019086880.tif 000013
【図１２】
2019086880.tif 000014
【図１３】
2019086880.tif 000015
【図１４】
2019086880.tif 000016
【図１５】
2019086880.tif 000017
【図１６】
2019086880.tif 000018
【図１７】
2019086880.tif 000019
【図１８】
2019086880.tif 000020
【図１９】
2019086880.tif 000021
【図２０】
2019086880.tif 000022
【図２１】
2019086880.tif 000023
【図２２】
2019086880.tif 000024
【図２３】
2019086880.tif 000025
【図２４】
2019086880.tif 000026
【図２５】
2019086880.tif 000027
【図２６】
2019086880.tif 000028
【図２７】
2019086880.tif 000029
【図２８】
2019086880.tif 000030
【図２９】
2019086880.tif 000031
【図３０】
2019086880.tif 000032
【図３１】
2019086880.tif 000033
【図３２】
2019086880.tif 000034
【図３３】
2019086880.tif 000035
【図３４】
2019086880.tif 000036
【図３５】
2019086880.tif 000037
【図３６】
2019086880.tif 000038