(57)【要約】      （修正有）【課題】蓄積ログのバックアップ中に発生したエラーの原因を調べるための解析ログを取得可能とする情報処理装置、エラー解析支援方法、及び、エラー解析支援プログラムを提供する。【解決手段】画像形成装置は、アプリケーション１２が出力したログ１７を保持するメモリ３と、ログ１７が所定量以上蓄積したときにメモリ３から出力される蓄積ログ４１を格納するＨＤＤ４とを備える。蓄積ログ４１は、画像形成装置のログ管理アプリによって、メモリ３及びＨＤＤ４とは異なる他の記憶装置であるＳＤカード７に書き出される。蓄積ログ４１をＳＤカード７へ書き出す処理中にエラーが発生した場合には、ログ管理アプリは、メモリ３に記憶されているログ１７をエラー解析用の解析ログ７４としてＳＤカード７へ書き出す。【選択図】図１５
2020086981.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが出力したログを保持する第１記憶装置と、
前記ログが所定量以上蓄積したときに前記第１記憶装置から出力される蓄積ログを格納する第２記憶装置と、
前記第１記憶装置及び前記第２記憶装置とは異なる他の記憶装置に前記蓄積ログを書き出すログ管理部と、
を備え、
前記ログ管理部は、
前記蓄積ログを前記他の記憶装置へ書き出す処理中にエラーが発生した場合、前記第１記憶装置に記憶されているログをエラー解析用の解析ログとして前記他の記憶装置へ書き出す、
情報処理装置。
【請求項２】
前記ログ管理部は、
前記エラーが発生した場合、前記エラーの種類を特定し、前記種類に応じてエラー解析に必要なログの種類を特定し、前記特定した種類のログを前記第１記憶装置から前記他の記憶装置へ書き出す、
請求項１に記載の情報処理装置。
【請求項３】
前記ログ管理部は、
前記解析ログを書き出すときに、前記他の記憶装置に既に同種の解析ログがある場合、書き込み済みの解析ログと現在の前記第１記憶装置に保持されるログとの差分を、前記他の記憶装置に書き出す、
請求項１または２に記載の情報処理装置。
【請求項４】
前記他の記憶装置は、当該情報処理装置に接続可能な外部記憶装置である、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
第１記憶装置と第２記憶装置を備える情報処理装置が実行するエラー解析支援方法であって、
アプリケーションが出力したログを前記第１記憶装置に保持する保持ステップと、
前記ログが所定量以上蓄積したときに前記第１記憶装置から出力される蓄積ログを前記第２記憶装置に格納する格納ステップと、
前記第１記憶装置及び前記第２記憶装置とは異なる他の記憶装置に前記蓄積ログを書き出す蓄積ログ書き出しステップと、
前記蓄積ログ書き出しステップの処理中にエラーが発生した場合、前記第１記憶装置に記憶されているログをエラー解析用の解析ログとして前記他の記憶装置へ書き出す解析ログ書き出しステップと、
を含む、
エラー解析支援方法。
【請求項６】
第１記憶装置と第２記憶装置を備える情報処理装置のためのエラー解析支援プログラムであって、
コンピュータに、
アプリケーションが出力したログを前記第１記憶装置に保持する保持機能と、
前記ログが所定量以上蓄積したときに前記第１記憶装置から出力される蓄積ログを前記第２記憶装置に格納する格納機能と、
前記第１記憶装置及び前記第２記憶装置とは異なる他の記憶装置に前記蓄積ログを書き出す蓄積ログ書き出し機能と、
前記蓄積ログ書き出し機能の処理中にエラーが発生した場合、前記第１記憶装置に記憶されているログをエラー解析用の解析ログとして前記他の記憶装置へ書き出す解析ログ書き出し機能と、
を実現させるためのエラー解析支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、エラー解析支援方法、及び、エラー解析支援プログラムに関する。
【背景技術】
【０００２】
従来、画像形成装置等の情報処理装置では、障害解析に必要な情報を取得するため、装置内にある障害解析用のログや装置の情報（蓄積ログ）をバックアップ用の他の記憶装置へ書き出しておく手法がある。
【０００３】
特許文献１には、上記手法を実施可能な画像処理装置において、記憶装置にバックアップされている画像処理装置のログ情報に関し、画像処理装置における当該ログ情報の消失を検知すると、ログ情報の消失が起こった後に画像処理装置において生成されたログ情報を画像処理装置から取得して記録領域に記録し、これにより、ログ履歴の消失後に画像処理装置が実行したジョブのログ履歴の消失を防止する構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記の蓄積ログをバックアップ用の他の記憶装置へ書き出す処理の最中にこの処理に起因するエラーが発生する場合がある。このとき、エラーの原因を調べるために、エラー発生時の装置内のログを取得できると有効である。しかし、特許文献１に記載の手法では、記憶装置へのログ情報（蓄積ログ）のバックアップ中にエラーが発生した場合に、エラーの原因を調べるためのログ（解析ログ）が得られず、エラーを解消するための作業効率が低下するという課題が残る。
【０００５】
本発明は、蓄積ログのバックアップ中に発生したエラーの原因を調べるための解析ログを取得可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一観点に係る情報処理装置は、アプリケーションが出力したログを保持する第１記憶装置と、前記ログが所定量以上蓄積したときに前記第１記憶装置から出力される蓄積ログを格納する第２記憶装置と、前記第１記憶装置及び前記第２記憶装置とは異なる他の記憶装置に前記蓄積ログを書き出すログ管理部と、を備え、前記ログ管理部は、前記蓄積ログを前記他の記憶装置へ書き出す処理中にエラーが発生した場合、前記第１記憶装置に記憶されているログをエラー解析用の解析ログとして前記他の記憶装置へ書き出す。
【発明の効果】
【０００７】
ログの取得中にエラーが発生した場合にその原因を調べるためのログを取得することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る画像形成装置のハードウェア構成図
【図２】画像形成装置のソフトウェアとハードウェアとの関連を示す図
【図３】画像形成装置におけるログ蓄積の手順を説明する図
【図４】共有メモリの内部構造について説明する図
【図５】画像形成装置におけるログ蓄積のシーケンス図
【図６】画像形成装置における蓄積ログのバックアップの手順を説明する図
【図７】画像形成装置におけるログバックアップのシーケンス図
【図８】ログバックアップ処理中にエラー発生したときのシーケンス図
【図９】ログバックアップ処理中に画像形成装置アプリログのフォルダの作成に失敗した場合のシーケンス図
【図１０】解析ログの管理テーブルの一例を示す図
【図１１】解析ログをＳＤカードにコピーする手順を説明する図
【図１２】共有メモリのログと解析ログの関係について説明する図
【図１３】ログ取得エラー発生時の解析ログへの書き込み処理のフローチャート
【図１４】共有メモリのループ回数が解析ログよりも大きい場合の解析ログへの書き込みロジックのフローチャート
【図１５】本実施形態に係る画像形成装置の解析ログ取得処理の概略構成を説明する図
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１０】
以下では、本実施形態に係る情報処理装置の一例として画像形成装置１を挙げて説明する。
【００１１】
図１は、実施形態に係る画像形成装置１のハードウェア構成図である。ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２ａと、周辺機器を制御するための機能を搭載した集積回路である。ＳＯＣ２には、メモリ３と、ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）４と、ＳＤカードソケット５と、操作部６とが接続されている。
【００１２】
メモリ３（第１記憶装置）は、電源供給されている間保持するデータを格納する。
【００１３】
ＨＤＤ４（第２記憶装置）は、永続的なデータを格納する。
【００１４】
ＳＤカードソケット５は、ＳＤカード７を挿入でき、挿入したＳＤカード７（他の記憶装置）には永続的なデータが格納される。
【００１５】
操作部６は表示部と入力部から構成され、画像形成装置１の利用者が、画像形成装置１に対する操作の入出力を行う装置である。
【００１６】
図２は、画像形成装置１のソフトウェアとハードウェアとの関連を示す図である。
【００１７】
図２に示すように、ソフトウェアは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１１と、アプリケーション１２と、ライブラリ１３から構成される。ハードウェアは、上述のＣＰＵ２ａやメモリ３、ＨＤＤ４、ＳＤカード７、操作部６などがある。
【００１８】
ＯＳ１１は、ハードウェアを管理してアプリケーション１２やライブラリ１３がハードウェアを利用できるように機能を提供する。
【００１９】
アプリケーション１２は、利用者に画像形成装置１を使用するための機能を提供する。本実施形態では、アプリケーション１２の例として、画像形成装置管理アプリ１４と、ログを管理するログ管理アプリ１５（ログ管理部）が存在する。
【００２０】
ライブラリ１３は、アプリケーション１２を作成する時に組み込まれ、複数のアプリケーション１２が共通で使用するような機能をＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）として提供する。本実施形態では、ライブラリ１３の例として、ログ出力ライブラリ１６が存在する。
【００２１】
画像形成装置１は、ログ管理アプリ１５によって、各アプリケーション１２のログ情報をメモリ３に保持し、ＨＤＤ４に書き出して蓄積ログ４１をＨＤＤ４に格納することができる。図３は、画像形成装置１におけるログ蓄積の手順を説明する図である。
【００２２】
図３に示すように、画像形成装置管理アプリ１４やログ管理アプリ１５等のアプリケーション１２や、ＯＳ１１は、出力したいログを引数として、ログ出力ライブラリ１６のＡＰＩを呼び出す（「１０．ＡＰＩ呼び出し」処理）。
【００２３】
ログ出力ライブラリ１６は、共有メモリ３１上の先頭から空いたエリアに、引数で渡されたログ１７を格納する（「１１．書き出し」処理）。図３の例では、画像形成装置管理アプリ１４、ログ管理アプリ１５、ＯＳ１１は、それぞれ共有メモリ３１Ａ、３１Ｂ、３１Ｃにログ１７Ａ、１７Ｂ、１７Ｃを格納するよう構成されている。以下では、共有メモリ３１Ａ、３１Ｂ、３１Ｃを纏めて共有メモリ３１と表記し、ログ１７Ａ、１７Ｂ、１７Ｃを纏めてログ１７と表記する場合がある。
【００２４】
ログ出力ライブラリ１６は、共有メモリ３１上のログ１７のサイズが共有メモリ３１のサイズの半分を超えた場合、ログ管理アプリ１５にログ１７が蓄積されたことを通知する（「１２．通知」処理）。
【００２５】
ログ管理アプリ１５は、通知を受けると、全ての共有メモリ３１Ａ、３１Ｂ、３１Ｃを確認して、ログ１７Ａ、１７Ｂ、１７Ｃのサイズが共有メモリのサイズの半分を超えた場合、そのログを共有メモリのエリア３２からメモリ３上の別エリア３３に移動する（「１３．書き出し」処理）。
【００２６】
なお、別エリア３３に移動させるのは、共有メモリ３１のサイズが有限のため、ログ１７が増加した結果、共有メモリ３１のエリア３２から溢れてしまうことを防ぐためである。また、共有メモリ３１のサイズの半分を超えた時に動作する理由は、別エリア３３に共有メモリ３１のログ１７を移動している間に、ログ出力ライブラリ１６が共有メモリ３１に書き出せないことがないようにするためである。
【００２７】
別エリア３３に纏めたログ１７のサイズが、別エリア３３の半分のサイズを超えたら、その纏めたログ１７をＨＤＤ４に移動する（「１４．書き出し」処理）。ＨＤＤ４では、このログ１７が蓄積ログ４１として格納される。
【００２８】
図４は、共有メモリ３１の内部構造について説明する図である。図４に示すように、共有メモリ３１は、管理情報３４と、ログ１７から構成される。
【００２９】
管理情報３４は、共有メモリ３１を管理するのに使用する情報である。管理情報は、例えば、ループ回数や書き込み位置の情報を含む。ログ１７は、共有メモリ３１の所定領域に書き込まれる。
【００３０】
共有メモリ３１のサイズは有限で、ログ１７を共有メモリ３１に書き込んでいくと、書き込み領域がいっぱいになる。その場合、書き込み領域の先頭から上書きされる。管理情報３４の「ループ回数」は、先頭から上書きされた回数と一致する。管理情報３４の「書き込み位置」は、現在共有メモリ３１に書き込んでいるログ１７の位置である。
【００３１】
図３に示すログ出力ライブラリ１６は、アプリケーション１２やＯＳ１１から、図３中の「１０．ＡＰＩ呼び出し」処理で受け取ったログ１７を共有メモリ３１に格納する際、共有メモリ３１の管理情報３４を参考にする。例えば、受け取ったログ１７は、書き込み位置の次の位置から格納していく。また、ログ１７を格納した後、共有メモリ３１の管理情報３４の格納位置とループ回数の値は、最新の情報に更新される。
【００３２】
図５は、画像形成装置１におけるログ蓄積のシーケンス図である。図５では、ログ蓄積処理に対するログ出力ライブラリ１６とログ管理アプリ１５のやり取りをシーケンスとして示したものである。
【００３３】
アプリケーション１２は、ログを引数として、ログ出力ライブラリ１６のＡＰＩを呼び出す（ステップ１）。
【００３４】
ログ出力ライブラリ１６は、共有メモリ３１上の先頭から向かって空いたエリアにログ１７を格納する（ステップ１．１：保持ステップ）。
【００３５】
ログ出力ライブラリ１６は、共有メモリ３１上のログ１７のサイズが共有メモリ３１のサイズの半分を超えた場合、ログ管理アプリ１５にログ１７が蓄積されたことを通知する（ステップ２）。
【００３６】
ログ管理アプリ１５は、通知を受けると、全ての共有メモリ３１Ａ，３１Ｂ，３１Ｃを確認して、ログ１７Ａ，１７Ｂ，１７Ｃのサイズが共有メモリ３１Ａ，３１Ｂ，３１Ｃのサイズの半分を超えた場合、そのログ１７をメモリ３上の別エリア３３に移動する（ステップ２．１）。
【００３７】
ログ管理アプリ１５は、別エリア３３に纏めたログ１７のサイズが、別エリア３３の半分のサイズを超えたら、その纏めたログ１７をＨＤＤ４に移動する（ステップ２．２：格納ステップ）。
【００３８】
さらに画像形成装置１は、ログ管理アプリ１５によって、ＨＤＤ４に格納された蓄積ログ４１をＳＤカード７にコピーしてバックアップをとることができる。図６は、画像形成装置１における蓄積ログ４１のバックアップの手順を説明する図である。
【００３９】
利用者がＳＤカードソケット５にＳＤカード７を挿入し、操作部６にてログ取得開始の操作を行うと、ログ管理アプリ１５は、図６に示すように、ＳＤカード７に出力先フォルダ（蓄積ログフォルダ７１）を作成し、ＨＤＤ４に蓄積された蓄積ログ４１（図６の「ログ１」「ログ２」）をそのフォルダ７１にコピーする（「２１．コピー」処理）。
【００４０】
また、画像形成装置管理アプリ１４は、アプリの内部情報を元にログ１７Ａ（図６の「ログａ１」）を作成して、ログ管理アプリ１５が作成したフォルダ（画像形成装置管理アプリログフォルダ７２）に格納する（「２２．生成」処理）。
【００４１】
図７は、画像形成装置１におけるログバックアップのシーケンス図である。
【００４２】
利用者が画像形成装置１のＳＤカードソケット５にＳＤカード７を挿入し、操作部６にてログ取得開始の操作を行うと（ステップ１）、画像形成装置管理アプリ１４は、ログ管理アプリ１５に蓄積ログ４１の取得を要求する（ステップ１．１）。
【００４３】
ログ管理アプリ１５は、ＳＤカード７に出力先フォルダ（蓄積ログフォルダ７１）を作成し、ＨＤＤ４に蓄積された蓄積ログ４１（図６の「ログ１」「ログ２」）をそのフォルダ７１にコピーする（ステップ１．１．１：蓄積ログ書き出しステップ）。
【００４４】
ログ管理アプリ１５は、ＳＤカード７に画像形成装置管理アプリログのフォルダ７２を作成して（ステップ１．１．２）、画像形成装置管理アプリ１４にログ１７Ａの取得を要求する（ステップ１．１．３）。
【００４５】
画像形成装置管理アプリ１４は、アプリの内部情報を元にログ１７Ａ（図６の「ログａ１」）を作成して、画像形成装置管理アプリログのフォルダ７２に格納する（ステップ１．２）。
【００４６】
画像形成装置管理アプリ１４は、ログ管理アプリ１５にログ取得の完了を通知すると（ステップＳ１．３）、ログ管理アプリ１５は、画像形成装置管理アプリ１４にログ取得の完了を通知する（ステップ２）。
【００４７】
画像形成装置管理アプリ１４は、操作部６にログ取得が完了したことを表示して、利用者にログ取得完了を通知する（ステップ２．１）。
【００４８】
利用者はＳＤカード７を回収して、ログ１７を障害の解析に使用する。
【００４９】
上記の図６、図７は、ログバックアップの正常な手順を説明した。これに対して、本実施形態では、ログバックアップの処理中にエラーが発生したときに、エラー種類に応じた解析ログ７４（図１１参照）をメモリ３からＳＤカード７に書き出す機能を有する。解析ログ７４とは、画像形成装置１のログ取得時にエラーが発生し、そのエラーの解析に使用するため、ＳＤカード７などの外部記憶装置に格納するログのことをいう。以降ではこの解析ログ書き出し処理（エラー解析支援方法）について説明する。
【００５０】
図８は、ログバックアップ処理中にエラー発生したときのシーケンス図である。図８の基本シーケンスは、図７の画像形成装置１におけるログバックアップのシーケンス図と同じであるが、以下の点が異なる。
【００５１】
（１）ステップ１．１．１ 「ＳＤカードに出力先フォルダを作成し、ＨＤＤに蓄積されたログをそのフォルダにコピーする」でエラーが発生した場合、例えば、ＨＤＤ４から蓄積ログ４１が読み取れなかった場合、ステップ１．１．２「解析ログをＳＤにコピーする」が実行される（解析ログ書き出しステップ）。
【００５２】
（２）ステップ１．２ 「アプリの内部情報を元にログを作成して、画像形成装置管理アプリログのフォルダに格納する」でエラーが発生した場合、画像形成装置管理アプリ１４は、ステップ１．３「ログ取得の完了通知」で、エラーであることをログ管理アプリ１５に通知する。ログ管理アプリ１５は、エラー通知を受けると、ステップ２「解析ログをＳＤにコピーする」を実行する（解析ログ書き出しステップ）。
【００５３】
（３）ログ管理アプリ１５は、一度でもエラーが発生したことを検知すると、ステップ３「ログ取得の完了通知」で、エラーが発生したことを画像形成装置管理アプリ１４に通知する。画像形成装置管理アプリ１４は、エラーが発生したことを受けると、ステップ３．１「操作部にログ取得が完了したことを表示」で、操作部６にログ取得に失敗したことを表示する。
【００５４】
図９は、ログバックアップ処理中に画像形成装置アプリログのフォルダ７２の作成に失敗した場合のシーケンス図である。図９の基本シーケンスは、図８と同様に図７の画像形成装置１におけるログバックアップのシーケンス図と同じであるが、以下の点が異なる。
【００５５】
（１）ステップ１．１．２「ＳＤカードに画像形成装置管理アプリログのフォルダ作成」でエラーが発生した場合、例えば、ＳＤカード７にフォルダ７２を作成できなかった場合、ステップ１．１.２「解析ログをＳＤにコピーする」を実行する（解析ログ書き出しステップ）。
【００５６】
（２）ログ管理アプリ１５は、ステップ２「ログ取得の完了通知」で、エラーが発生したことを画像形成装置管理アプリ１４に通知する。画像形成装置管理アプリ１４は、エラーが発生したことを受けると、ステップ２．１「操作部にログ取得が完了したことを表示」で、操作部６にログ取得に失敗したことを表示する。
【００５７】
図９のシーケンスでは、ログ管理アプリ１５が画像形成装置管理アプリ１４に対して「ログの取得を要求」しない点が、図８のシーケンスと異なる。これは、画像形成装置管理アプリ１４が作成するログを格納する場所の作成に失敗したので、置き場所がなくなり、処理をスキップしたためである。
【００５８】
また、本実施形態では、ログ管理アプリ１５は、エラー発生時にはエラーの種類に応じて解析に必要な解析ログ７４を適宜選択してＳＤカード７に書き出すことができる。ログ管理アプリ１５は、例えば図１０に示すような解析ログ７４の管理テーブル１５Ａを有し、この管理テーブル１５Ａを参照して解析ログ７４として書き出すログの種類を選択する。
【００５９】
図１０は、解析ログ７４の管理テーブル１５Ａの一例を示す図である。解析ログ７４の管理テーブル１５Ａは、ログ取得中のエラーが発生したタイミングと、そのエラーを解析するのに必要なログ１７の種類とを対応付けたものである。図１０の例では、図８のシーケンス図の（１）、（２）、図９のシーケンス図の（１）について項目が設けられている。例えば、「ＳＤカードに画像形成装置管理アプリログのフォルダ作成」のステップでエラーが発生した場合、ＯＳ１１とログ管理アプリ１５のログ１７Ｃ、１７Ｂがあれば解析可能であることを表している。
【００６０】
この管理テーブル１５Ａは、ログ管理アプリ１５に固定値として組み込まれており、動的に変更することはできない。
【００６１】
図８、図９のエラーシーケンスにおいてエラー発生時の処理として挙がった「解析ログをＳＤにコピーする」について、図１１を参照して説明する。図１１は、解析ログ７４をＳＤカード７にコピーする手順を説明する図である。
【００６２】
解析ログ７４をＳＤカード７にコピーする処理では、ログ管理アプリ１５が主となって、以下の処理を行う。
【００６３】
（１）ＳＤカード７に解析ログフォルダ７３がなければ、フォルダを作成する。解析ログフォルダ７３は、ログ取得毎にユニークな番号が付加されている。つまり、利用者が前回、操作部６でログ取得を実行してエラーが発生した時に作成したフォルダと、今回エラーが発生した時に作成されるフォルダ名は異なる。
【００６４】
「ユニークな番号」は、ログ管理アプリ１５がログ取得を受けた時の時間をYYYY_MM_DD_HH_MM_SS形式に変換した値である。YYYYは年で、MMは月で、DDは日で、HHは時間で、MMは分で、SSは秒である。例えば、2018年10月1日18時50分20秒に要求を受けた場合、2018_10_01_18_50_20という番号が付加される。
【００６５】
（２）図１０の解析ログ７４の管理テーブル１５Ａを元に、エラーが発生したタイミングから、取得するログ１７の種類を決定する。図１１の例では、ログ管理アプリ１５のログ１７Ｂと、ＯＳ１１のログ１７Ｃとが選択されている。
【００６６】
（３）上記（２）で決定したログ１７Ｂ、１７Ｃの種類に対応する共有メモリ３１Ｂ、３１Ｃより、共有メモリ３１Ｂ、３１Ｃに格納されたログ１７Ｂ、１７ＣをＳＤカード７の解析ログフォルダ７３にそれぞれ書き出す。各アプリ１２がどの共有メモリ３１を使用するかは予め設定されているため、ログ管理アプリ１５は、解析に必要なログ１７に対する共有メモリ３１を探すことが出来る。
【００６７】
この際、ＳＤカード７の解析ログフォルダ７３に、既に、同種のログ７６Ａが作成されていた場合、上書き保存はせず、差分７６Ｂのみを既存のログに追記するようにする。図１２は、共有メモリ３１のログ１７と解析ログ７４の関係について説明する図である。
【００６８】
解析ログ７４は、管理情報７５とログ７６から構成されるファイルである。管理情報７５は、ループ回数や書き込み位置がある。ログ７６は、共有メモリ３１にあるログ１７をコピーしたものである。
【００６９】
画像形成装置１のログ取得中にエラーが発生すると、解析ログ７４が作成され、共有メモリ３１の管理情報３４にある、ループ回数と書き込み位置が、解析ログ７４の管理情報７５のエリアに記載され、ログ７６が追記される。以降、同一操作中のログ取得でエラーが発生した場合、共有メモリ３１の管理情報３４を元に解析ログ７４の管理情報７５が更新され、共有メモリ３１のログ１７は、解析ログ７４のファイルに追記されていく。つまり、解析ログ７４に既に記録されているログ７６Ａと、現在の共有メモリ３１のログ１７との差分７６Ｂのみが解析ログ７４に追加され、既存のログ７６Ａと新たに追加された差分７６Ｂとが最新のログ７６となる。
【００７０】
なお、共有メモリ３１が複数ある場合、それぞれ個別に解析ログ７４が作成される。
【００７１】
図１３を参照して、ログ取得エラー発生時の解析ログ７４への書き込みロジックついて説明する。図１３は、ログ取得エラー発生時の解析ログ７４への書き込み処理のフローチャートである。
【００７２】
解析ログ７４への書き込みは以下の順に実施される。
【００７３】
（１）ＳＤカード７に解析ログフォルダ７３がなければ作成する（ステップＳ１０１、Ｓ１０２）
【００７４】
（２）図１０の解析ログ７４の管理テーブル１５Ａを参照して、エラーが発生したタイミングより、解析に必要なログ１７を決定する（ステップＳ１０３）。
【００７５】
（３）解析に必要なログ１７それぞれに対して以降の処理を実施する（ステップＳ１０４、Ｓ１０５）。
【００７６】
（４）解析に必要なログ１７に対応する解析ログ７４が解析ログフォルダ７３に存在しない場合（ステップＳ１０６のＮＯ）、解析ログ７４のファイルを作成し（Ｓ１０７）、解析に必要なログ１７に対応する共有メモリ３１の管理情報３４を、解析ログ７４の先頭に書き込み（Ｓ１０８）、また、共有メモリ３１にあるログ１７を解析ログ７４に追記する（Ｓ１０９）。解析ログ７４に書き込む共有メモリ３１のログ１７のサイズとして、共有メモリ３１の管理情報３４にある書き込み位置の値を使用する。
【００７７】
（５）一方、解析に必要なログ１７に対応する解析ログ７４が解析ログフォルダ７３に存在する場合（ステップＳ１０６のＹＥＳ）、解析ログ７４の管理情報７５と、共有メモリ３１の管理情報３４とを比較して（Ｓ１１０）、共有メモリ３１のログ１７と、解析ログ７４のログ７６との間の差分の有無を判定する。
【００７８】
差分があるかの判断は、共有メモリ３１の管理情報３４と、解析ログ７４の管理情報７５に記録されているループ回数及び書き込み位置を使用する。解析ログ７４と共有メモリ３１のループ回数と書き込み位置が一致するということは、差分がないと考えることが出来る。共有メモリ３１のループ回数と書き込み位置が解析ログ７４のよりも大きければ、差分が発生していると考えられ、その差分７６Ｂだけ解析ログ７４に追記する。
【００７９】
（６）解析ログ７４の管理情報７５と、共有メモリ３１の管理情報３４のループ回数が一致し（Ｓ１１１のＹＥＳ）、かつ、共有メモリ３１の書き込み位置と解析ログ７４の位置が一致する場合（Ｓ１１２のＮＯ）、すなわち、共有メモリ３１のログ１７と、解析ログ７４のログ７６との間に差分が無い場合、当該ログ１７を解析ログ７４にコピーする必要はないので、当該ログ１７の処理はスキップして、ステップＳ１０４に戻る。
【００８０】
（７）一方、解析ログ７４の管理情報７５と、共有メモリ３１の管理情報３４のループ回数が一致し（Ｓ１１１のＹＥＳ）、かつ、共有メモリ３１の書き込み位置が解析ログ７４の位置より大きい場合（Ｓ１１２のＹＥＳ）、すなわち、共有メモリ３１のログ１７と、解析ログ７４のログ７６との間に差分が有る場合、共有メモリ３１の書き込み位置から解析ログ７４の書き込み位置を引いた数（差分７６Ｂ）だけ、共有メモリ３１のログ１７から、解析ログ７４へコピーする（Ｓ１１３）。さらに共有メモリ３１の管理情報３４で解析ログ７４の管理情報７５を更新すると（Ｓ１１４）、当該ログ１７の処理が完了してステップＳ１０４に戻る。
【００８１】
（８）また、共有メモリ３１のループ回数が解析ログ７４のものよりも大きい場合（ステップＳ１１１のＮＯ→ステップＳ１１５のＹＥＳ）には、共有メモリ３１にあるログ１７を、解析ログファイルに追記する（Ｓ１１６）。さらに共有メモリ３１の管理情報３４で解析ログ７４の管理情報７５を更新すると（Ｓ１１４）、当該ログ１７の処理が完了してステップＳ１０４に戻る。
【００８２】
共有メモリ３１のループ回数が解析ログ７４のものよりも小さい場合（ステップＳ１１１のＮＯ→ステップＳ１１５のＮＯ）には、当該ログ１７の処理はスキップして、ステップＳ１０４に戻る。
【００８３】
なお、ステップＳ１１６の処理では、共有メモリ３１のループ回数が解析ログ７４のものよりも大きい場合、共有メモリ３１の書き込み位置以降にあるエリアのログは、有効なログとも、無効なログとも考えられる。このため、ステップＳ１１６では、まず共有メモリ３１の書き込み位置以降にあるエリアのログの有効、無効を判断し、有効なログと判断した場合は順序性を考えて、先に共有メモリ３１の書き込み位置以降の解析ログ７４に追記してから、共有メモリ３１の書き込み位置のログ１７を追記してもよい。そのロジックについて図１４を参照してさらに説明する。
【００８４】
図１４は、共有メモリ３１のループ回数が解析ログ７４よりも大きい場合の解析ログ７４への書き込みロジックのフローチャートである。
【００８５】
共有メモリ３１の書き込み位置以降にあるエリアのログ１７が有効なエリアかの判断は、共有メモリ３１と解析ログ７４のループ回数と書き込み位置を比較することで判定する。
【００８６】
ループ回数の差が１より大きければ（Ｓ２０１のＹＥＳ）、共有メモリ３１の全エリアが有効と考えられる。この場合、順序性を考えて、共有メモリ３１の書き込み位置より後ろのエリア、以前のエリアの順で解析ログ７４に追記する（Ｓ２０２、Ｓ２０３）。
【００８７】
一方、ループ回数の差が１の場合（Ｓ２０１のＮＯ）、共有メモリ３１と解析ログ７４の書き込み位置を比較して、大きいほうの値以降のエリアが有効だと考えられる。解析ログ７４の書き込み位置が共有メモリ３１より大きい場合（Ｓ２０４のＹＥＳ）には、順序性を考えて、解析ログ７４の書き込み位置より後の共有メモリ３１のエリアを解析ログ７４に追記した後、共有メモリの書き込み位置以前のエリアを解析ログ７４に追記する（Ｓ２０５、Ｓ２０６）。共有メモリ３１の書き込み位置が解析ログ７４より大きい場合には（Ｓ２０４のＮＯ）、ステップＳ２０２、Ｓ２０３の処理を行う。
【００８８】
なお、ループ回数の差が０の場合（Ｓ１１１のＹＥＳ）や、マイナスの場合（Ｓ１１１のＮＯ→Ｓ１１５のＮＯ）は、図１３のフローで判定しているので、本フローでは除外する。
【００８９】
上述した画像形成装置管理アプリ１４、ログ管理アプリ１５、ログ出力ライブラリ１６、ＯＳ１１の各機能は、ＣＰＵ２ａ、ＳＯＣ２、メモリ３等のハードウェア上に所定のコンピュータソフトウェア（エラー解析支援プログラム）を読み込ませることにより、ＣＰＵ２ａの制御のもとでＳＯＣ２、操作部６を動作させるとともに、メモリ３やＨＤＤ４におけるデータの読み出し及び書き込みを行うことで実現される。すなわち、本実施形態のエラー解析支援プログラムをコンピュータ上で実行させることで、画像形成装置１は、図２の画像形成装置管理アプリ１４、ログ管理アプリ１５、ログ出力ライブラリ１６、ＯＳ１１として機能する。
【００９０】
図１５を参照して本実施形態に係る画像形成装置１の効果を説明する。図１５は、本実施形態に係る画像形成装置１の解析ログ取得処理の概略構成を説明する図である。本実施形態の画像形成装置１は、アプリケーション１２が出力したログ１７を保持するメモリ３と、ログ１７が所定量以上蓄積したときにメモリ３から出力される蓄積ログ４１を格納するＨＤＤ４とを備える。蓄積ログ４１は、画像形成装置１のログ管理アプリ１５によって、メモリ３及びＨＤＤ４とは異なる他の記憶装置であるＳＤカード７に書き出される。そして特に本実施形態では、図１５に示すように、蓄積ログ４１をＳＤカード７へ書き出す処理中にエラーが発生した場合には、ログ管理アプリ１５は、メモリ３に記憶されているログ１７をエラー解析用の解析ログ７４としてＳＤカード７へ書き出す。
【００９１】
この構成により、蓄積ログ４１のバックアップ中に発生したエラーの原因を調べるための解析ログ７４を取得することが可能となるので、ユーザによるエラーの解析作業を好適に支援でき、エラーを解消するための作業効率を向上できる。
【００９２】
また、本実施形態の画像形成装置１では、ログ管理アプリ１５は、エラーが発生した場合、エラーの種類を特定し、種類に応じてエラー解析に必要なログ１７Ａ、１７Ｂ、１７Ｃの種類を特定し、特定した種類のログ１７をメモリ３からＳＤカード７へ書き出す。この構成により、多種のエラーそれぞれの解析に必要なログ１７を個別に取得でき、また、解析に不要なログ１７は取得しないので、過不足なく解析ログ７４の取得が可能となる。これにより、解析ログ７４を書き出すＳＤカード７の容量も抑えることができる。
【００９３】
また、本実施形態の画像形成装置１では、ログ管理アプリ１５は、解析ログ７４を書き出すときに、ＳＤカード７に既に同種の解析ログ７４がある場合、書き込み済みの解析ログ７６Ａと、現在のメモリ３に保持されるログ１７との差分７６Ｂを、ＳＤカード７に書き出す。この構成により、ＳＤカード７に格納する解析ログ７４の内容に重複が生じることを抑制できるので、解析ログ７４を書き出すＳＤカード７の容量をより一層抑えることができる。
【００９４】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【００９５】
上記実施形態では、実施形態に係る情報処理装置の一例として画像形成装置１を挙げて説明したが、蓄積ログ４１のバックアップ処理中にエラーが発生したときに解析ログ７４を取得できる機能を備えていればよく、画像形成装置１以外の装置やシステムでもよい。
【００９６】
上記実施形態では、蓄積ログのバックアップ、及び解析ログを格納する「他の記憶装置」として、画像形成装置１に取り付けられるＳＤカード７を例示したが、画像形成装置１に有線または無線で通信可能に接続されるＳＤカード７以外の外部記憶媒体や外部記憶装置でも良いし、ネットワークを介してサーバー等の別のコンピュータ装置に搭載される記憶装置でもよいし、画像形成装置１内のメモリ３、ＨＤＤ４とは異なる別の記憶装置でもよい。
【符号の説明】
【００９７】
１    画像形成装置（情報処理装置）
３    メモリ（第１記憶装置）
４    ＨＤＤ（第２記憶装置）
７    ＳＤカード（他の記憶装置）
１５    ログ管理アプリ
１７    ログ
４１    蓄積ログ
７４    解析ログ
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特開２０１６−０６６２１４号公報
【図１】
2020086981.tif 000003
【図２】
2020086981.tif 000004
【図３】
2020086981.tif 000005
【図４】
2020086981.tif 000006
【図５】
2020086981.tif 000007
【図６】
2020086981.tif 000008
【図７】
2020086981.tif 000009
【図８】
2020086981.tif 000010
【図９】
2020086981.tif 000011
【図１０】
2020086981.tif 000012
【図１１】
2020086981.tif 000013
【図１２】
2020086981.tif 000014
【図１３】
2020086981.tif 000015
【図１４】
2020086981.tif 000016
【図１５】
2020086981.tif 000017