(57)【特許請求の範囲】
【請求項１】
ファームウェアにより動作する情報処理装置であって、
前記ファームウェアの動作中のログを記憶する第１の記憶手段と、
予め設定された事象の発生に対応して、前記第１の記憶手段に記憶されているログを第２の記憶手段に退避させる退避手段と、
前記退避手段により前記第１の記憶手段から前記第２の記憶手段にログの退避が行われた場合、その旨を通知する第１の通知手段と、
操作者により設定された文字列を読み込む読込手段と、
前記退避手段により前記第２の記憶手段に退避されたログに、前記操作者により設定された文字列が含まれるか否かを検査するログ検査手段と、
前記ログ検査手段による検査結果を前記操作者に通知する第２の通知手段と、
を有することを特徴とする情報処理装置。
【請求項２】
ファームウェアにより動作する情報処理装置であって、
前記ファームウェアの動作中のログを記憶する第１の記憶手段と、
予め設定された事象の発生に対応して、前記第１の記憶手段に記憶されているログを第２の記憶手段に退避させる退避手段と、
操作者により設定された文字列をＵＳＢメモリから読み込む読込手段と、
前記退避手段により前記第２の記憶手段に退避されたログに、前記操作者により設定された文字列が含まれるか否かを検査するログ検査手段と、
前記ログ検査手段による検査結果を前記操作者に通知する通知手段と、
を有することを特徴とする情報処理装置。
【請求項３】
前記第１の記憶手段は、前記情報処理装置のメインメモリの一部領域に設けられたリングバッファであることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２の記憶手段に退避したログを前記情報処理装置と通信可能な外部装置に転送する転送手段を有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記外部装置は、前記情報処理装置に着脱可能に接続される記憶装置であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記外部装置は、ネットワークを介して前記情報処理装置と通信可能な装置であることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記情報処理装置は、ファームウェアの動作により制御される複数の機能を有するものであり、
前記予め設定された事象を設定するための設定手段を有し、
前記設定手段は、前記予め設定された事象を前記機能ごとにそれぞれ設定することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置の操作者による前記いずれの機能についてログを退避させるかの選択、及び、予め用意されている複数のモードのいずれのモードでログを退避させるかの選択を受け付ける受付手段と、
前記機能ごと及び前記モードごとに、前記予め設定された事象を含むログ設定情報を記憶するログ設定情報記憶手段と、を有し、
前記設定手段は、前記受付手段で受け付けた前記機能の選択及び前記モードの選択に対応するログ設定情報を前記ログ設定情報記憶手段から読み出して、前記予め設定された事象を設定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記設定手段は、前記ログ設定情報を前記ログ設定情報記憶手段又は外部装置から読み出すことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
ファームウェアにより動作する情報処理装置の制御方法であって、
退避手段が、予め設定された事象の発生に対応して、第１の記憶手段に記憶されている前記ファームウェアの動作中のログを第２の記憶手段に退避させる退避ステップと、
第１の通知手段が、前記退避ステップにより前記第１の記憶手段から前記第２の記憶手段にログの退避が行われた場合、その旨を通知する第１の通知ステップと、
読込手段が、操作者により設定された文字列を読み込む読込ステップと、
ログ検査手段が、前記退避手段により前記第２の記憶手段に退避されたログに、前記操作者により設定された文字列が含まれるか否かを検査するログ検査ステップと、
第２の通知手段が、前記ログ検査ステップによる検査結果を前記操作者に通知する第２の通知ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
ファームウェアにより動作する情報処理装置の制御方法であって、
退避手段が、予め設定された事象の発生に対応して、第１の記憶手段に記憶されている前記ファームウェアの動作中のログを第２の記憶手段に退避させる退避ステップと、
読込手段が、操作者により設定された文字列をＵＳＢメモリから読み込む読込ステップと、
ログ検査手段が、前記退避手段により前記第２の記憶手段に退避されたログに、前記操作者により設定された文字列が含まれるか否かを検査するログ検査ステップと、
通知手段が、前記ログ検査ステップによる検査結果を前記操作者に通知する通知ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１２】
ファームウェアにより動作する情報処理装置を、請求項１乃至９のいずれか１項に記載された情報処理装置の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年の画像処理装置、特に複数の機能を備えたマルチファンクション機器（以下、ＭＦＰと略する）においては、機能の多様化、デバイスの高性能化に伴い、その制御を行うファームウェアの規模、複雑度が増大しつづけている。そのためファームウェア開発、デバッグにおける効果的な調査、分析手段が求められている。
【０００３】
従来の組み込み装置向けのファームウェア開発においては、採用されるＣＰＵに対応してハードウェアレベルによるソフトデバッグ支援ツールが提供されることが多かった。このようなハードウェアレベルによるデバッグ支援機能では、ソフト的には実現できない強力なデバッグ機能を具備しており、ソフトウェア開発における必須ツールとなっていた。
【０００４】
例えば、ソフトウェアバグによる不正なメモリ領域アクセスの検出や、多様な条件でのプログラム実行停止などは、ハード支援ならではの強力なデバッグ機能であり、広くファームウェア開発で使用されてきた。
【０００５】
しかし、近年のＭＦＰのコントローラでは、ハードウェアによるデバッグ支援装置が提供されない汎用ＣＰＵを採用することも増えている。そのような場合、主にソフトウェア中に埋め込んだデバッグメッセージをデバッグログとして出力し、そのログ内容を検証することで動作確認や不具合調査に使うことが広く行われている。
【０００６】
デバッグログによるデバッグは、ハード支援に機能が劣るケースがある一方で、市場のユーザ先でも取得が可能であり、製品出荷後のファーム不具合調査でも利用することができる。そのため、ＭＦＰの市場不具合調査、分析にはまず市場から不具合動作を含むデバッグログを回収することが広く行われている。また同時に、ファームウェアの不具合発生時にその不具合要因の切り分けあるいは特定に利用できると、不具合への対応の迅速化が期待できる。
【０００７】
そのため例えば、特許文献１のように、ＭＦＰの動作異常時のログを、異常が発生したデバイスのＩＤを付加して記録し、不具合原因の特定に役立てる技術が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２９９５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、ＭＦＰのデバッグログには以下の課題がある。
ＭＦＰのようなリアルタイム制御を含むファームウェア動作のデバッグログ出力では、ミリ秒又はマイクロ秒オーダーの動作分析が必要である。そのためデバッグログ出力は、高速なメインメモリの一部領域をリングバッファとして行い、後からＨＤＤにファイル化する構成をとることが多い。
【００１０】
メインメモリは、高速な一方でデバッグログに割り当て可能な領域サイズは小さく、時間的に数秒〜数十秒程度しかログ記録できない場合もある。そのため適切なタイミングでメインメモリからＨＤＤなどの二次記憶装置にデバッグログをファイル化しないと、不具合調査に必要な動作区間の情報自体が失われてしまう。
【００１１】
この制約のため、従来では、取得したデバッグログに調査対象としたい動作が含まれず、分析自体ができない場合があった（第１の課題）。
さらに、ＭＦＰの機能としてデバッグログの制御機能やステータス確認機能が正式には提供されず、あくまで開発者向けの機能を限定的に運用するケースが多い。そのため、実際にＭＦＰのログ取得を試みるサービスマンやユーザにとっては、前述の取得タイミングの問題と合わせてデバッグログの取り扱いが難しく、判りにくいという課題があった（第２の課題）。
【００１２】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、情報処理装置の制御ファームウェアにおける所望のデバッグログの取得の確率を向上し、ファームウェアの不具合調査の効率を高めることができる仕組みを提供することである。
【課題を解決するための手段】
【００１３】
本発明は、ファームウェアにより動作する情報処理装置であって、前記ファームウェアの動作中のログを記憶する第１の記憶手段と、予め設定された事象の発生に対応して、前記第１の記憶手段に記憶されているログを第２の記憶手段に退避させる退避手段と、前記退避手段により前記第１の記憶手段から前記第２の記憶手段にログの退避が行われた場合、その旨を通知する第１の通知手段と、操作者により設定された文字列を読み込む読込手段と、前記退避手段により前記第２の記憶手段に退避されたログに、前記操作者により設定された文字列が含まれるか否かを検査するログ検査手段と、前記ログ検査手段による検査結果を前記操作者に通知する第２の通知手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、情報処理装置の制御ファームウェアにおける所望のデバッグログの取得の確率を向上し、ファームウェアの不具合調査の効率を高めることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明のＭＦＰの全体構成を示す概要図である。
【図２】本発明のＭＦＰのコントローラユニットのハードウェア構成の一例を示すブロック図である。
【図３】本発明のＭＦＰのコントローラソフトウェアの構成図である。
【図４】本実施例におけるデバッグログ出力用ＡＰＩ定義および呼び出し例を示す図である。
【図５】本実施例におけるデバッグログのデフォルト出力内容の一例を示す図である。
【図６】本実施例のデバッグログ動作設定ファイルの反映フローを示す図である。
【図７】本実施例のデバッグログ出力処理の一例を示すフローチャートである。
【図８】本実施例のデバッグログファイルの蓄積、回収フローを示す図である。
【図９】本実施例のログ設定ファイルのデータ例を示す図である。
【図１０】本実施例のデバッグログのＩＤによる絞込み出力内容の一例を示す図である。
【図１１】本実施例のデバッグログのレベルによる絞込み出力内容の一例を示す図である。
【図１２】本実施例のデバッグログのＩＤ及びレベルでの絞りこみ出力内容の一例を示す図である。
【図１３】本発明のＭＦＰのデバッグログステータス確認画面の一例を示す図である。
【図１４】本実施例のデバッグログステータス画面のステータス表示処理の一例を示すフローチャートである。
【図１５】本実施例でＵＳＢメモリにログ回収する処理の一例を示すフローチャートである。
【図１６】本発明のＭＦＰのデバッグログの動作設定画面の一例を示す図である。
【図１７】通常のコピー機能画面の標準画面の一例を示す図である。
【図１８】通常のコピー機能画面の標準画面の一例を示す図である。
【図１９】本実施例のデバッグログ自動退避処理の一例を示すフローチャートである。
【図２０】本実施例でＦＴＰサーバにログ回収する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１７】
図１は、本発明の情報処理装置の一実施例を示す画像処理装置を適用したＭＦＰの全体構成を示す概要図である。
図１において、１００は本発明の画像処理装置を適用したＭＦＰ（Multifunction Peripheral）である。以下、ＭＦＰ１００の画像形成動作について説明する。
ＭＦＰ１００は、１Ｄカラー系画像処理装置（１つの感光ドラムでカラー画像形成を行う画像処理装置）であり、操作部２１０、スキャナエンジン２０１、プリンタエンジン２０２、さらにコントローラユニット２００を有する。コントローラユニット２００については後述の図２で説明する。なお、プリンタエンジン２０２は、レーザ露光部１０、作像部２０、定着部３０、給紙／搬送部４０を有する。
【００１８】
操作部２１０は、ユーザからの操作や装置全体のステータス表示などを行なう入力キーやタッチパネル付き表示画面を有し、画像処理装置とユーザとのユーザインターフェース機能を提供する。
【００１９】
スキャナエンジン２０１は、原稿台に置かれた原稿に対して、照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する。
プリンタエンジン２０２のレーザ露光部１０は、画像データ（例えば、スキャナエンジン２０１により生成）に応じて変調されたレーザ光等の光線を等角速度で回転する回転多面鏡（ポリゴンミラー）に入射させ、反射走査光として感光ドラム２１に照射する。
【００２０】
作像部２０は、感光ドラム２１を回転駆動し、帯電器によって帯電させ、レーザ露光部１０によって感光ドラム２１上に形成された潜像をトナーによって現像化し、そのトナー像をシートに転写する。その際に転写されずに感光ドラム２１上に残った微小トナーを回収するといった一連の電子写真プロセスを実行して作像する。その際、シートが転写ドラム２２の所定位置に巻きつき、４回転する間に、マゼンタ（Ｍ）、シアン（Ｃ）、イエロー（Ｙ）、ブラック（Ｋ）のトナーを持つそれぞれの現像ユニット（現像ステーション）２３〜２６が入れ替わりで順次前述の電子写真プロセスを繰り返し実行する。４回転の後、４色のフルカラートナー像を転写されたシートは、転写ドラム２２を離れ、定着部３０へ搬送される。
【００２１】
定着部３０は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、前記作像部によってトナー像が転写されたシート上のトナーを、熱と圧力によって溶解、定着させる。
【００２２】
給紙／搬送部４０は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上持っており、前記プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚分離し、作像部２０・定着部３０へ搬送する。シートは作像部２０の転写ドラム２２に巻きつけられ、４回転した後に定着部３０へ搬送される。４回転する間に前述のＹＭＣＫ各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合は、定着部を通過したシートを再度、作像部２０へ搬送する搬送経路を通るように制御する。
【００２３】
上記各機能部はコントローラユニット２００で実行されるコントローラウェアによって統合制御されており、それぞれコントローラソフトウェアと相互に通信を行ないつつ画像処理装置機能動作を実現するものである。コントローラソフトウェアにつていは図３で後述する。なお、上記のとおり図１のＭＦＰの制御においてはコントローラソフトウェアは紙搬送制御、画像データ生成など実時間制約の強いリアルタイム処理を行う必要がある。その内部処理の時間粒度は、μ秒のオーダーであることも多く、コントローラソフトウェアが出力するデバッグログの出力頻度は通常のパーソナルコンピュータ（ＰＣ）やサーバ上のアプリケーションの数百〜数万倍となる。
【００２４】
＜コントローラハードの構成＞
図２は、コントローラユニット２００のハードウェア構成の一例を示すブロック図である。
【００２５】
図２に示すように、コントローラユニット２００は、画像入力デバイスであるスキャナエンジン２０１や画像出力デバイスであるプリンタエンジン２０２と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントローラユニット２００は、ＬＡＮ５０と接続することで、外部装置（例えば、ＦＴＰサーバ２５０）と画像情報やデバイス情報を入出力するための制御を行う。
【００２６】
コントローラユニット２００において、ＭａｉｎＣＰＵ２０５は、主に装置全体のシステム的な制御とアプリケーションプログラムを制御するための中央処理装置である。ＲＡＭ２０６は、ＭａｉｎＣＰＵ２０５が動作するためのシステムワークメモリであり、ＭａｉｎＣＰＵ２０５が出力するデバッグログを保持する領域も確保されている。
【００２７】
ＳｕｂＣＰＵ２１８は、主にスキャナエンジン２０１、プリンタエンジン２０２のリアルタイム制御、及び画像処理の制御をつかさどり、ＭａｉｎＣＰＵ２０５と連携してコピー機能、ＰＤＬプリント機能を実現する。なお、ＰＤＬは、Page Description Languageの略称であり、ページ記述言語を示す。即ち、ＰＤＬプリント機能とは、ページ記述言語で記述されたプリントデータに基づいて印刷を行う機能を示す。
【００２８】
ＲＡＭ２１９は、ＳｕｂＣＰＵ２１８用のメインメモリであり、ＳｕｂＣＰＵ２１８が出力するデバッグログ出力領域もここに割り当てられている。
ＢｏｏｔＲＯＭ２０７には、コントローラの電源がＯＮ後、ＭａｉｎＣＰＵ２０５を起動するために最初に実行されるシステムのブートプログラム（図３のブートローダー３７０）が格納されている。このブートプログラムにより、ＢｏｏｔＲＯＭ２０７内のオペレーティングシステム（図３の３８０）や各種ファームウェアが起動される。ここで、電源Ｏｎで起動されるのはＭａｉｎＣＰＵ２０５のみである。ＳｕｂＣＰＵ２１８の起動は、ＭａｉｎＣＰＵ２０５のファームウェアがＳｕｂＣＰＵ２１８用のファームウェアをＢｏｏｔＲＯＭ２０７からロードし、起動させることで行われる。
【００２９】
ハードディスクドライブ（ＨＤＤ）２０８は、各種処理のためのシステムソフトウェア及び入力された画像データ、及び本発明のデバッグログが参照するログ設定ファイルＡ１（図６）、自動退避によって永続化されたログファイルＢ（図６）を保持する。なお、ＨＤＤ２０８の代わりに、ＳＳＤ（Solid State Drive）を備える構成であってもよい。
【００３０】
操作部Ｉ／Ｆ２０９は、画像データ等を表示可能なタッチパネル付き表示画面を有する操作部２１０に対するインタフェース部であり、操作部２１０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ２０９は、操作部２１０から操作者が入力した情報をＭａｉｎＣＰＵ２０５に伝える役割をする。ネットワークインタフェース（ネットワークＩ／Ｆ）２１１は、例えばＬＡＮカード等で実現され、ＬＡＮ５０に接続して外部装置（例えば、ＦＴＰサーバ２５０）との間で情報の入出力を行う。ＵＳＢ Ｉ／Ｆ２３０は、ＵＳＢデバイス（例えば、ＵＳＢメモリ２４０）との間で情報の入出力を行う。なお、ＵＳＢメモリ２４０の代わりに、ＵＳＢハードディスク等のＭＦＰ１００と着脱可能な他の記憶装置であってもよい。もちろん、インタフェースはＵＳＢインタフェースでなくとも、ＭＦＰ１００と通信可能なインタフェースであればどのようなインタフェースであってもよい。
【００３１】
イメージバスインタフェース（イメージバスＩ／Ｆ）２１４は、システムバス２１３と画像データを高速で転送する画像バス２１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス２１５上には、ラスタイメージプロセッサ（ＲＩＰ）２１６、デバイスインタフェース（デバイスＩ／Ｆ）２１７が接続される。
【００３２】
ＲＩＰ２１６は、ページ記述言語（ＰＤＬ）コードや後述するベクトルデータをイメージに展開する。デバイスＩ／Ｆ部２１７は、スキャナエンジン２０１やプリンタエンジン２０２とコントローラユニット２００とを物理的に接続し、画像データの同期系／非同期系の変換を行う。
【００３３】
また、画像処理ボード２０３は、スキャナエンジン２０１から読み込んだ画像やプリンタエンジン２０２に出力しようとしている画像に応じた補正、解像度変換等の処理を行う。画像処理は、スキャナエンジン２０１、プリンタエンジン２０２の速度に対応したリアルタイム処理が必要なため、画像処理ボード２０３の高速な専用処理ハードウェアによって処理実行される。
【００３４】
ＦＡＸデバイス２６０は、ファクシミリプロトコルによって通信を行うためのデバイスである。
図２中のＦＴＰサーバ２５０とＵＳＢメモリ２４０は、本実施例のＭＦＰ１００のコントローラハードウェアに含まれるものではないが、後述の実施例中でデバッグログの回収に使用する他の外部装置として使用されるものである。
【００３５】
＜コントローラソフトウェア構成＞
図３は、ＭＦＰ１００のコントローラユニット２００で実行されて画像処理装置全体の制御を行なうコントローラソフトウェアの構成図である。
【００３６】
図３において、３００はコントローラソフトウェアである。コントローラソフトウェア３００は、ＭａｉｎＣＰＵ２０５で実行されるＭａｉｎ側と、ＳｕｂＣＰＵ２１８で実行されるＳｕｂ側から構成されるが、本実施例で説明するデバッグログの動作は主にＭａｉｎＣＰＵ２０５に関する。そのためＳｕｂＣＰＵ２１８側の詳細説明は省略する。
【００３７】
コントローラソフトウェア３００は、システム全体制御とアプリケーション層の制御とともに、ＳｕｂＣＰＵ２１８と連携してスキャナエンジン２０１、プリンタエンジン２０２、画像処理などのリアルタイム処理も行う。また、コントローラソフトウェア３００は、操作部２１０から入力された動作指示にしたがってＭＦＰ全体としての機能動作を実現する。ブートローダー３７０は、コントローラユニット２００のオペレーティングシステム３８０を起動するためのシステム読み込みプログラムである。オペレーティングシステム３８０はコントローラソフトウェア３００全体が動作するための実行環境およびデバイスアクセス機能を提供するシステムソフトウェアである。
【００３８】
ＵＩアプリケーション３０１は、操作部２１０の画面表示及び入力受付を行うソフトウェアモジュールである。ネットワークモジュール３０２は、ネットワークＩ／Ｆ２１１のドライバ及びプロトコル層の制御を行い、ネット−ワークを介した通信機能を提供する。
【００３９】
ＵＳＢ管理モジュールは、ＵＳＢ Ｉ／Ｆ２３０を管理し、ＵＳＢデバイスの装着や取り外しを監視する。スキャンジョブ３１０、コピージョブ３２０、プリントジョブ３３０、ＦＡＸジョブ３６０は、それぞれ対応するＭＦＰ機能を実現するソフトウェアモジュールである。
【００４０】
コントローラＡＰＩ３０３は、アプリケーション層からの動作指示を受け付けるソフトＡＰＩ群で構成され、アプリケーションが所定の手順で本ＡＰＩ群を呼び出すことでＭＦＰ動作が実行される。
【００４１】
電力管理モジュール３８３は、ＭＦＰ全体の電力制御を行い、電源ＯＦＦ時のシステム電源遮断処理や、ＭＦＰがアイドル状態の場合に省電力モードにシステム状態を変更する制御を行う。エラーマネージャ３８５は、ＭＦＰ全体の各種事象を監視しており、例えばコントローラソフトウェア３００内で発生したソフト例外、あるいはサービスマンコールのような致命的エラー、プリンタエンジン２０２でのジャムなどを捕捉するモジュールである。
【００４２】
＜デバッグログ管理モジュール構成＞
デバッグログ管理モジュール３８２は、コントローラソフトウェア３００が動作中に出力するデバッグログの出力、退避、転送など一連のデバッグログ機能を実現する。
【００４３】
次に、デバッグログ管理モジュール３８２が提供するデバッグログ出力ＩＦ機能について図４を用いて説明する。
図４は、本実施例におけるデバッグログ出力用ＡＰＩ定義及び呼び出し例を示す図である。
デバッグログ出力ＩＦ８３０は、コントローラソフトウェア３００の開発者向けに提供されている。
なお、本実施例では、ログＩＤ定義８２０に示すように、各モジュール用にログＩＤが定義されているものとする。例えば、ＵＩアプリケーション３０１用には「ＵＩ００」から始まる一連のＩＤが、ＦＡＸジョブ３６０用には「ＦＡＸ００」からの一連のＩＤが、アプリ用には「ＡＰＰ００」からの一連のＩＤが割り当てられる。
【００４４】
また、本実施例では、ログ出力レベル定義８１０に示すように、出力レベルが定義されているものとする。なお、出力レベルは、ログ出力のエラー程度に応じて設定される。
８４０は、デバッグログ出力ＩＦ８３０を用いたデバッグログ出力呼出例である。この例では、ログＩＤとしてＦＡＸ００、出力レベルとしてＷＡＲＮ、文字列として"Waitign IMG-MEM  1000ms retry"が指定されて、デバッグログ出力が呼び出されている。
【００４５】
本実施例のコントローラソフトウェア３００には、開発者により、８４０のようなデバッグログ出力呼出が、プログラムコード内に埋め込まれている。開発者は、８４０のようなデバッグログ出力呼出により出力されるデバッグログの内容を検証することで、コントローラソフトウェア３００の動作確認や不具合調査を行うことができる。
【００４６】
図５は、デバッグログ出力の一例を示す図である。なお、本発明の効果を端的に説明するため、本実施例ではＲＡＭ２０６に割り当てるデバッグログ用領域（図６に示すデバッグログ用ＲＡＭ領域１０４０）をログ６０行分とすることを前提として説明する。
【００４７】
図５ではＲＡＭ２０６のデバッグ領域６０行分いっぱいにログ出力されている様子を示す。
次の６１行目にあたるデバッグログ出力ＩＦ８３０の呼び出しが行われると、デバッグログ管理モジュール３８２は、ＲＡＭ２０６領域をリングバッファとして最古の行を上書きしてログ記録を継続する。そのため、ＲＡＭ２０６のデバッグログ領域には最近の６０行分だけの出力が保持されており、それ以前のログは上書きされて失われていく構成である。
【００４８】
ｌｉｎｅ９１０はログの行数、ｔｉｍｅ９２０はデバッグログ出力が行われた時刻、ＴＡＳＫ９３０はデバッグログ出力を行ったモジュールのタスク名を示す。ＧｒｏｕｐＩＤ９４０、ＬＥＶＥＬ９５０、Ｍｅｓｓａｇｅ９６０はそれぞれデバッグログＩＦ８３０の呼び出し時に入力されたログＩＤ、出力レベル、メッセージ本体の文字列である。例えば、図５の３０行目にあたる９７０の出力は、図４の８４０のようにデバッグログ出力ＩＦを呼び出した結果である。なお、行数９１０、時間９２０、タスク名９３０はデバッグログ管理モジュール３８２が自動的に付加する情報であり、開発者によるデバッグログ分析をし易くするためのものである。
【００４９】
図６は、デバッグログ管理モジュール３８２の内部構成と、その動作モードを制御するログ設定の反映フローを示す図である。
図７は、本実施例のデバッグログ出力処理の一例を示すフローチャートである。なお、このフローチャートの処理は、デバッグログ管理モジュール３８２により実行される（即ち、ＭａｉｎＣＰＵ２０５がＢｏｏｔＲＯＭ２０７から読み出されたファームウェアを実行することにより実現される）。
【００５０】
デバッグログ出力モジュール１０００は、デバッグログ出力ＩＦ８３０の処理実体である。デバッグログ出力モジュール１０００は、ログ動作設定１０１０を参照しつつ、図７のフローチャートに従ってデバッグログ用ＲＡＭ領域１０４０へのログ出力を行う。なお、ログ動作設定１０１０は、ログ設定ファイルＡ１やＡ２から読み込まれてものである。Ａ１は、ＭＦＰ１００のＨＤＤ２０８（ログ設定情報記憶部）に標準保持されるログ設定ファイル（ログ設定情報）を示す。また、Ａ２は、ＵＳＢメモリ２４０等の外部装置に記憶されて後からＭＦＰ１００に送り込まれるカスタムログの設定ファイル（ログ設定情報）を示す。なお、ログ設定ファイルＡ１やＡ２の具体例は、後述する図９に示す。
【００５１】
デバッグログ出力ＩＦ８３０が呼び出されると、デバッグログ出力モジュール１０００は、図７のＳ１２０１において、入力されたログＩＤが有効（出力対象）かどうか、ログ動作設定１０１０内のログ出力条件を参照して判定する。なお、ここで参照するログ動作設定１０１０内のログ出力条件は、具体的には、後述する図９の１８０３、１８１３、１８２３、１８３３等の"ID:"の設定値が対応する。
【００５２】
そして、入力されたログＩＤが無効（出力対象でない）と判定した場合（Ｓ１２０１でＮｏ）、デバッグログ出力モジュール１０００は、ログ出力を行わず処理を終了する。
一方、入力されたログＩＤが有効（出力対象）と判定した場合（Ｓ１２０１でＹｅｓ）、デバッグログ出力モジュール１０００は、Ｓ１２０２に処理を進める。
Ｓ１２０２では、デバッグログ出力モジュール１０００は、入力された出力レベルが有効（出力対象）かどうか、ログ動作設定１０１０内の出力レベルの設定を参照してチェックする。なお、ここで参照するログ動作設定１０１０内の出力レベルの設定は、具体的には、後述する図９の１８０３、１８１３、１８２３、１８３３等の"Level:"の設定値が対応する。
【００５３】
そして、入力された出力レベルが無効（出力対象でない）と判定した場合（Ｓ１２０２でＮｏ）、デバッグログ出力モジュール１０００は、ログ出力を行わず処理を終了する。
一方、入力された出力レベルが有効（出力対象）と判定した場合（Ｓ１２０２でＹｅｓ）、デバッグログ出力モジュール１０００は、Ｓ１２０３に処理を進める。
Ｓ１２０３では、デバッグログ出力モジュール１０００は、入力されたメッセージに、タイムスタンプ、タスク名、ＩＤ、レベル等の他の情報を付加して、ログ動作設定１０１０内の出力先の設定で指定されている出力先に出力し、処理を終了する。なお、ログ動作設定１０１０内の出力先の設定とは、具体的には、後述する図９の１８０３、１８１３、１８２３、１８３３等の"output:"の設定値が対応する。例えば、図９の１８０３のように"output:RAM"と設定されている場合、図６の例では、デバッグログ用ＲＡＭ領域１０４０となる。なお、デバッグログの出力先には高速なメインメモリを用いる必要があるため、通常では、デバッグログの出力先はデバッグログ用ＲＡＭ領域１０４０となる。しかし、本実施例では、"output:"の設定値を変更することにより、デバッグログの出力先を変更することも可能である。
【００５４】
ログ設定読み込みモジュール１０２０は、ＨＤＤ２０８又はＵＳＢメモリ２４０に保持されているログ設定ファイルＡ１又はＡ２を読み込み、ログ動作設定１０１０に反映するモジュールである。
【００５５】
ここで、ログ設定ファイルＡ１は、ＭＦＰ出荷時点で予め想定されるデバッグログ動作パターンを定義して標準状態でＨＤＤ２０８に保持されている設定ファイル群である。また、ログ設定ファイルＡ２は、想定されたログ設定ファイルＡ１のデバッグログ動作設定に含まれないカスタム設定ファイルであり、製品出荷後に想定外の条件でデバッグログ取得を行いたい場合に開発者が記述し作成するものである。
【００５６】
デバッグログ用ＲＡＭ領域１０４０は、ＭＦＰ１００のメインメモリ（ＲＡＭ２０６）の一部領域をデバッグ用に割り当てたリングバッファ（ログ記憶部）であり、本実施例ではデバッグログ６０行分が確保されている。
【００５７】
続いて図８を用いてログの自動退避及び外部装置へのログファイル転送について説明する。
図８は、本実施例のデバッグログファイルの蓄積、回収フロー図である。
ログ自動退避モジュール１０３０は、ログ動作設定１０１０内のログ退避トリガ条件が発生すると、このタイミングでデバッグログ用ＲＡＭ領域１０４０の内容を読み出し、ＨＤＤ２０８の一時領域にファイルとして退避（自動退避）する。なお、ログ動作設定１０１０内のログ退避トリガ条件とは、具体的には、後述する図９の１８０４、１８１４、１８２４等の"trigger:"の設定値が対応する。また、ＭＦＰ１００内の各種事象は、エラーマネージャ３８５からログ自動退避モジュール１０３０に常に通知されており、実際にログ退避を行うかはログ自動退避モジュール１０３０が設定（ログ退避トリガ条件）に基づいて判断を行う。
【００５８】
ログパターンチェックモジュール１０６０は、自動退避されたログファイルに、ログ動作設定１０１０内の期待パターンが含まれるかを検査するモジュールである。なお、ログ動作設定１０１０内の期待パターンとは、具体的には、後述する図９の１８０２、１８１２、１８２２、１８３２等で設定されている文字列（例えば、"Waitign IMG-MEM  1000ms retry"）が対応する。そして、上記自動退避されたログファイルに期待パターンが含まれている場合、ログ自動退避モジュール１０３０は、上記ＨＤＤ２０８内の一時領域に自動退避されたログファイルをＨＤＤ２０８内のログ永続化領域（永続化記憶部）に退避し、期待ログ保存フラグをＯｎにする。なお、期待ログ保存フラグは、後述する図１３の４１０に示される機能ごとに設けられたものであり、デバッグログ管理モジュール３８２内で管理され（例えば、ＲＡＭ２０６又はＨＤＤ２０８内に保持され）、後述する図１４のＳ１６０２で参照される。
【００５９】
ログ転送モジュール１０５０は、ＨＤＤ２０８のログ永続化領域に退避されたログファイル群を外部装置（ＦＴＰサーバ２５０やＵＳＢメモリ２４０）に転送するモジュールである。
【００６０】
図９は、ログ設定ファイルＡ１又はＡ２の一例を示す図である。
ログ設定ファイルは、設定項目別の１つ以上のセクションから構成される。例えば、ログ設定ファイルは、期待ログパターン、ログ出力条件部、ログ退避トリガ、サーバ設定、上書きモード等のセクションが含まれる。
【００６１】
以下、本実施例のログ動作設定例、デバッグログ出力例では、「ＭＦＰが受信したＦＡＸの処理に異常発生」の状況で異常原因調査のためのデバッグログ取得を想定して説明する。
【００６２】
図９において、ログ設定ファイル１８０１は、期待ログパターン１８０２、ログ出力条件部１８０３、ログ退避トリガ１８０４等のセクションを有する。
ログ出力条件部１８０３は、出力先はＲＡＭ(output:RAM)、出力ＩＤはＦＡＸ関連の全てのＩＤ(ID:FAX,all)、アプリの６０番と６３番(ID:App,60,63)、出力レベルは全レベル(Level:all)（絞り込み無し）の設定である。即ち、ログＩＤがＦＡＸ関連のＩＤ、アプリの６０番、又は、アプリの６３番のデバッグログ出力が呼び出された場合に、デバッグログをデバッグログ用ＲＡＭ領域１０４０に出力することが設定されている。なお、レベル（ＬＥＶＥＬ）による絞込みは行わない設定となっている。
【００６３】
また、ログ退避トリガ１８０４は、ＦＡＸ関連のエラー発生でＲＡＭ２０６に保持されているデバッグログ用ＲＡＭ領域１０４０をファイル化する設定(trigger:FaxERR)である。即ち、ＦＡＸ関連のエラーが発生した場合に、このタイミングでデバッグログ用ＲＡＭ領域１０４０内のデバッグログをＨＤＤ２０８の一時領域に退避することが設定されている。
【００６４】
また、期待ログパターン１８０２は、"Waitign IMG-MEM  1000ms retry"の設定である。即ち、上記一時領域に退避されたデバッグログ内に文字列"Waitign IMG-MEM  1000ms retry"が含まれている場合に、上記一時領域に退避されたログをＨＤＤ２０８内のログ永続化領域に退避することが設定されている。
【００６５】
図１０は、ログ設定ファイル１８０１の設定の元で出力されたデバッグログ内容例を示す図である。
図５に示したデフォルト出力内容では、コピー動作、ネットワークパケット等の動作等と混合してＦＡＸ動作のログが出力されており、ＦＡＸに注目したログ分析は困難である。一方で図１０に示すように、ＦＡＸに絞ったログＩＤ出力の結果では、ＦＡＸに関連したアプリ及びＦＡＸジョブのログのみが出力されており、容量が限られたデバッグログ用ＲＡＭ領域１０４０が有効利用でき、且つ、ＦＡＸ動作分析も容易である。また、期待ログパターン１８０２で記述したメッセージもログ内に残っているため、ログパターンチェックモジュール１０６０は、期待したログが取得されたと判断し、ログ自動退避モジュール１０３０によるＨＤＤ２０８への退避が行われる。
【００６６】
次に、図９のログ設定ファイル１８１０について説明する。
期待ログパターン１８１２、ログ退避トリガ１８１４は、ログ設定ファイル１８０１の期待ログパターン１８０２、ログ退避トリガ１８０４と同一であるので説明は省略する。
ログ出力条件部１８１３は、出力先はＲＡＭ(output:RAM)、出力ＩＤは全ログＩＤ(ID:all,all)、出力レベルは警告以上のみ出力(Level:WARN)の絞込みを行う設定例である。即ち、出力レベルが警告"WARN"以上のデバッグログ出力が呼び出された場合に、デバッグログをデバッグログ用ＲＡＭ領域１０４０に出力することが設定されている。なお、ログＩＤによる絞込みは行わない。
【００６７】
図１１は、ログ設定ファイル１８１０の設定で出力されたデバッグログ内容例を示す図である。
ログ設定ファイル１８１０では、ログＩＤ設定は「全ＩＤ(ID:all,all)」となっているため、ネットワーク、ＦＡＸ、電力制御、プリントなどの各モジュールの出力がされている。出力レベルでの絞込みは、ＭＦＰ全体の動作で発生しているエラーや警告を確認する目的では判りやすく、且つ、緊急度の高いログのみに絞り込むとともに、デバッグログ用ＲＡＭ領域１０４０を節約することができる。
【００６８】
例えば、図１１では、直接異常が発生しているＦＡＸ処理中のメモリ確保の待ちが確認できるとともに、同時に電力制御のＩＤでＥＲＲレベルのログが１１行目で確認できる。そのためＦＡＸと同時に電力関係の不具合が発生し、ＦＡＸに異常が生じたのではないかという推測や調査につなげることが可能となる。
【００６９】
次に、図９のログ設定ファイル１８２０について説明する。
期待ログパターン１８２２、ログ退避トリガ１８２４は、ログ設定ファイル１８０１の期待ログパターン１８０２、ログ退避トリガ１８０４と同一であるので説明は省略する。
ログ出力条件部１８２３は、出力先はＲＡＭ(output:RAM)、出力ＩＤはＦＡＸ関連の全てのＩＤ(ID:FAX,all)、アプリの６０番と６３番(ID:App,60,63)、出力レベルは警告以上のみ出力(Level:WARN)の絞込みを行う設定例である。即ち、ログＩＤがＦＡＸ関連のＩＤ、アプリの６０番、又はアプリの６３番で、且つ、出力レベルが警告"WARN"以上のデバッグログ出力が呼び出された場合に、デバッグログをデバッグログ用ＲＡＭ領域１０４０に出力することが設定されている。
【００７０】
図１２は、ログ設定ファイル１８２０の設定で出力されたデバッグログ内容例を示す図である。
図１２の例では、ログ設定ファイル１８０１によるＩＤ絞り込みによる出力である図１０に比べて出力レベルが警告"WARN"未満のＬＯＧレベルが出力されず、「ＦＡＸ動作の警告"WARN"以上のログのみ」が取得されている。このように出力条件を絞り込むことで限られたデバッグログ用ＲＡＭ領域１０４０がリングバッファとして古いログを上書きするタイミングを引き伸ばし、有効なログを記録する可能性を高めることができる。
【００７１】
次に、図９のログ設定ファイル１８３０について説明する。
ログ設定ファイル１８３０には、期待ログパターン１８３２、ログ出力条件部１８３３等に加えて、サーバ設定１８３４のセクションが記述されている。なお、期待ログパターン１８３２、ログ出力条件部１８３３は、ログ設定ファイル１８２０の期待ログパターン１８２２、ログ出力条件部１８２３と同一であるので説明は省略する。
【００７２】
サーバ設定１８３４は、サーバのネットワークアドレス（SERVER:192.168.0.1）、使用するアカウント（USER:logger、PASS:xxxx）を用いてサーバに接続を行う設定例である。なお、このサーバ設定１８３４は、後述する図２０のＳ２００５で用いられる。
【００７３】
＜デバッグログ画面＞
次に、デバッグログ管理モジュール３８２が提供する機能やステータスを設定、確認するＵＩ画面について図１３を用いて説明する。
【００７４】
図１３は、本ＭＦＰのデバッグログ動作設定やログ自動取得の状態を表示、確認可能な操作部２１０のタッチパネル付き表示部に表示されるデバッグログステータス画面の一例を示す図である。
【００７５】
図１３に示すように、４１０の列に示すＭＦＰ機能ごとにログ設定が行われ、各機能ごとにログ自動取得設定４２０、取得モード４３０、取得状況４４０を表示する。なお、ＭＦＰ機能とは、例えば、コピー機能、プリント機能、ＢＯＸ機能、ＳＥＮＤ機能、ＦＡＸ機能、電力機能、アプリ機能、全体機能等を示す。
【００７６】
図１３では、コピー機能とＦＡＸ機能でログ自動取得４２０が有効となっており、コピー機能では取得状況ボタン（ステータスボタン）４４１で自動取得は行われていないこと、ＦＡＸ機能では取得状況ボタン（ステータスボタン）４４２で自動取得が行われログが退避されていることが示されている。
【００７７】
また、ログ自動取得のタイミングが、取得モード４３０で設定されており、コピー機能は「ＪＡＭ」、ＦＡＸ機能は「カスタム」の設定となっている。
以下、取得状況ボタン４４１及び４４２の表示処理を図１４のフローチャートで説明する。
図１４は、本実施例のデバッグログステータス画面のステータス表示処理の一例を示すフローチャートである。なお、このフローチャートの処理は、ＵＩアプリケーション３０１により実行される（即ち、ＭａｉｎＣＰＵ２０５がＢｏｏｔＲＯＭ２０７から読み出されたファームウェアを実行することにより実現される）。
【００７８】
操作部２１０からデバッグログステータス画面（図１３）を開く操作が行われると、ＵＩアプリケーション３０１は、Ｓ１６０１において、デバッグログステータス画面を操作部２１０のタッチパネル付き表示部に表示する。
【００７９】
そして、ＵＩアプリケーション３０１は、デバッグログステータス画面内に表示する項目の収集を行い、その１つとして、Ｓ１６０２において、機能ごとの期待ログ保存フラグを、デバッグログ管理モジュール３８２から取得する。なお、期待ログ保存フラグは、後述する図１９のＳ１５０９又はＳ１５１４で設定されるものである。
【００８０】
次に、Ｓ１６０３において、ＵＩアプリケーション３０１は、上記Ｓ１６０２で取得した機能ごとの期待ログ保存フラグの状態に応じて、取得状況４４０に「あり」又は「なし」の表示を行う。詳細には、期待ログ保存フラグがＯｎの機能については、図１３の４４２に示すように、取得状況４４０に「あり」の表示を行う。一方、期待ログ保存フラグがＯｆｆの機能については、図１３の４４１に示すように、取得状況４４０に「なし」の表示を行う。
【００８１】
以下、図１３の画面の説明に戻る。
ユーザが、ＵＳＢメモリ転送ボタン４９０を選択してから実行ボタン４０２を押下すると、デバッグログ管理モジュール３８２は、ＨＤＤ２０８に自動退避されたデバッグログファイルをＵＳＢメモリに転送実行する。ステータス表示ボタン４９１には、ＵＳＢメモリへの転送動作状況が表示される。なお、ＵＳＢメモリがＭＦＰ１００に装着されている場合にのみ、ＵＳＢメモリ転送ボタン４９０が操作可能になるように構成してもよい。
【００８２】
ＦＴＰサーバ転送ボタン４９２は、ログ転送先を所定のＦＴＰサーバへ転送する場合に選択、実行され、ＵＳＢ転送と同様にステータスボタン４９３に処理状況が表示される。なお、図９のサーバ設定１８３４のようなＦＴＰサーバの設定がなされている場合にのみ、ＦＴＰサーバ転送ボタン４９２が操作可能になるように構成してもよい。
【００８３】
ＵＳＢメモリ転送ボタンから行われる処理を、図１５のフローチャートで説明する。
図１５は、本実施例でＵＳＢメモリにログ回収する処理のフローチャートである。なお、このフローチャートの処理は、ＵＩアプリケーション３０１、ＵＳＢＩＦ管理モジュール３９０、デバッグログ管理モジュール３８２等により実行される（即ち、ＭａｉｎＣＰＵ２０５がＢｏｏｔＲＯＭ２０７から読み出されたファームウェアを実行することにより実現される）。
【００８４】
操作部２１０からデバッグログステータス画面（図１３）を開く操作が行われると、ＵＩアプリケーション３０１は、デバッグログステータス画面を操作部２１０のタッチパネル付き表示部に表示する（Ｓ１７０１）。
【００８５】
また、ＵＳＢメモリがＭＦＰ１００に装着されると、ＵＳＢＩＦ管理モジュール３９０は、ＵＳＢメモリの接続を認識し、その旨をデバッグログ管理モジュール３８２に通知する（Ｓ１７０２）。なお、Ｓ１７０１とＳ１７０２の順序は逆でもよい。
【００８６】
また、ＵＩアプリケーション３０１は、ＵＳＢメモリ転送ボタン４９０が選択されたことを検知すると、ＵＳＢメモリ転送ボタン４９０を反転表示する（Ｓ１７０３）。この状態で実行ボタン４０２が押下されたことを検知すると、ＵＩアプリケーション３０１は、その旨をデバッグログ管理モジュール３８２に通知する（Ｓ１７０４）。
【００８７】
上記Ｓ１７０２の通知及びＳ１７０４の通知を受けると、デバッグログ管理モジュール３８２は、ログ転送モジュール１０５０を起動する。
次に、Ｓ１７０５において、ログ転送モジュール１０５０は、デバッグログ用ＲＡＭ領域１０４０の現時点のデバッグログをＨＤＤ２０８にファイル化する。
次に、Ｓ１７０６において、ログ転送モジュール１０５０は、上記Ｓ１７０５でＨＤＤ２０８にファイル化されたデバッグログ及びＨＤＤ２０８に自動退避されていたログファイルＢも含めて、ＵＳＢメモリ２４０に全てのログファイルを転送し、処理を終了する。
【００８８】
図１６は、デバッグログの動作設定画面の一例を示す図である。
図１３のデバッグログステータス画面に表示されるデバッグログ設定は、図１６の動作設定画面から行われる。この動作設定画面も、図１３に示したデバッグログステータス画面と同じく、ＭＦＰ１００の機能５１０別に設定が分かれており、５２０でログ自動退避（自動取得）のＯｆｆ／Ｏｎ切り替え、５３０で自動退避のトリガ事象の設定が可能である。
【００８９】
自動取得５２０、及び、取得モード５３０の選択は、５０１及び５０２に示すプルダウンメニューから所望の値を選択し、実行ボタン５０２を押下することで可能である。上述のように自動取得及び取得モードが選択されて実行ボタン５０２を押下されると、選択された設定をデバッグログ管理モジュール３８２が読み込み、デバッグログ動作に反映する。このとき、デバッグログ管理モジュール３８２内のログ動作設定１０１０には、ＵＩ画面から選択された条件に対応するログ設定ファイルが選択され、読み込まれる。
【００９０】
なお、ログ設定ファイル群Ａ１には、ＭＦＰの各機能ごとに、ＪＡＭ用のログ設定ファイル、ソフト例外用のログ設定ファイル、サービスコール用のログ設定ファイル、リブート用のログ設定ファイルがそれぞれ含まれている。即ち、ログ設定ファイル群Ａ１には、ＭＦＰの各機能ごと及び取得モードごとのログ設定ファイルがそれぞれ含まれている。そして、取得モード５３０として「ＪＡＭ」、「ソフト例外」、「サービスコール」又は「リブート」が選択された場合、ログ設定読み込みモジュール１０２０は、これに対応するログ設定ファイルを、ログ設定ファイル群Ａ１から選択して読み込む。例えば、ＦＡＸ機能の自動取得が有効にされ、取得モードとしてＪＡＭが選択されていた場合、ログ設定読み込みモジュール１０２０は、ＦＡＸ機能のＪＡＭに対応するログ設定ファイルを、ログ設定ファイル群Ａ１から選択して読み込む。
【００９１】
なお、取得モード５３０として「カスタム」が選択された場合、ログ設定読み込みモジュール１０２０は、ＵＳＢメモリ２４０からカスタム設定ファイルＡ２を読み込み、ログ動作設定１０１０に反映する。つまり取得モード５３０として「カスタム」を選択することで、柔軟なデバッグログ動作設定をＭＦＰ１００に送り込むことができる。
【００９２】
また、取得モード５３０として「無効」が選択された機能については、ログ設定読み込みモジュール１０２０は、設定ファイルの読み込みを行わない。
設定クリアボタン５５０は、ＭＦＰ１００のデバッグログ動作設定を標準状態に戻すためのボタンである。この設定クリアボタン５５０が押下されると、デバッグログ管理モジュール３８２は、ＨＤＤ等に格納されたデバッグログ動作設定の初期値等を読み出してログ動作設定１０１０に設定する。
【００９３】
ログファイルクリアボタン５５１は、ＭＦＰ１００内（ＨＤＤ２０８のログ永続化領域）に退避、保持されているデバッグログ関連のファイルやデータを全て削除する処理を実行するボタンである。
【００９４】
これらの設定クリアボタン５５０、ログファイルクリアボタン５５１は、コントローラソフトウェア３００の不具合調査が完了し、デバッグログ動作が不要となった時点でＭＦＰを標準状態に戻すためのものである。
【００９５】
戻るボタン５０３は、図示しない１階層元（１つ前）のＵＩ画面に遷移するためのボタンである。
＜デバッグログ動作のステータス表示＞
前述のデバッグログの自動退避機能の実施に伴って、その動作状況をユーザ通知する表示が必要となる。そのＵＩ表示例を図１７、図１８で説明する。
【００９６】
図１７、図１８は、通常のコピー機能画面の標準画面の一例を示す図である。
本実施例のＭＦＰ１００では、図１７の６１０、図１８の７１０に示す、操作画面下部の表示領域が、ＭＦＰ全体の動作状況をユーザに通知するための領域として使用される。
図１７の６１０では、ログのＨＤＤ退避中にＭＦＰ１００の電源ＯＦＦをされるとＨＤＤ２０８の破損につながる可能性があるため、ＭＦＰ１００の電源ＯＦＦしなよう注意を促す表示がなされている例が示されている。
【００９７】
図１８の７１０では、ログの自動退避が作動しＨＤＤ２０８にログファイルＢが存在していることを通知する表示がなされている例が示されている。自動退避が作動したということは、即ちデバッグログを取得してコントローラソフトウェア３００の動作を調査すべき状態が発生したということである。そのため、迅速にＨＤＤ２０８のログファイルＢを回収し、コントローラソフトウェア３００の開発者が分析することが望まれるため、ログ回収を促すための表示が操作画面下部の表示領域になされる（図１８の７１０）。
【００９８】
なお、コピー画面内の各ボタンや機能の詳細は、本発明とは関係しないため説明は省略する。
なお、図１７の６１０、図１８の７１０に示す表示は、ＵＩアプリケーション３０１が、デバッグログ管理モジュール３８２からの通知に応じて行うものである。
＜設定からログ自動退避の流れ＞
以下、図１９を用いて、デバッグログ設定からログ自動退避までの処理の流れを説明する。
【００９９】
図１９は、本実施例のデバッグログ自動退避処理のフローチャートであるである。このフローチャートの処理は、デバッグログ管理モジュール３８２により実行される（即ち、ＭａｉｎＣＰＵ２０５がＢｏｏｔＲＯＭ２０７から読み出されたファームウェアを実行することにより実現される）。
【０１００】
デバッグログ管理モジュール３８２は、図１６に示したデバッグログの動作設定画面からログの自動取得対象機能及び取得モードの設定が行われたことを検知すると（Ｓ１５０１）、Ｓ１５０２に処理を進める。
【０１０１】
Ｓ１５０２では、デバッグログ管理モジュール３８２は、前記Ｓ１５０１でなされた設定に対応するログ設定ファイルを読み込んでログ動作設定１０１０に設定し、設定反映に必要な内部モジュールの再起動を行う。これにより、上述の前記Ｓ１５０１でなされた設定に対応するデバッグログ出力設定、自動退避トリガ設定がＭＦＰに設定される。
【０１０２】
そして、図３に示したＭＦＰ１００の各モジュールは、前記Ｓ１５０１でなされた設定に対応する動作設定の元で動作を継続する（定常動作）（Ｓ１５０３）。
そして、ログ自動退避のトリガ事象が発生すると、エラーマネージャ３８５は、デバッグログ管理モジュール３８２に事象発生を通知する（Ｓ１５０４）。なお、この事象発生の通知を受けると、デバッグログ管理モジュール３８２は、ログ動作設定１０１０と発生した事象を比較する。そして、デバッグログ管理モジュール３８２が、発生した事象がログ退避トリガであると判断すると、ログ自動退避モジュール１０３０が、デバッグログ用ＲＡＭ領域１０４０内の情報（ログ）を、一旦、ＨＤＤ２０８の一時領域にファイル出力する。
【０１０３】
次に、Ｓ１５０５において、ログパターンチェックモジュール１０６０が、ＨＤＤ２０８の一時領域に出力したログ（ファイル）に、期待ログパターンが含まれているか否かを判定する。そして、ＨＤＤ２０８の一時領域に出力したログ（ファイル）に、期待ログパターンが含まれていないと判断した場合（Ｓ１５０６でＮｏ）、ログ自動退避モジュール１０３０は、上記一時領域に出力したログ（ファイル）を破棄する（Ｓ１５１５）。そして、図３に示したＭＦＰの各モジュールは、再び定常動作に戻る（Ｓ１５０３）。
【０１０４】
一方、ＨＤＤ２０８の一時領域に出力したログ（ファイル）に、期待ログパターンが含まれていると判断した場合（Ｓ１５０６でＹｅｓ）、ログ自動退避モジュール１０３０は、Ｓ１５０７処理を進める。
【０１０５】
Ｓ１５０７では、ログ自動退避モジュール１０３０は、ＨＤＤ２０８のログ永続化領域に空きがあるかを判定する。
そして、ＨＤＤ２０８のログ永続化領域に空きがあると判定した場合（Ｓ１５０７でＹｅｓ）、ログ自動退避モジュール１０３０は、Ｓ１５０８に処理を進める。
Ｓ１５０８では、ログ自動退避モジュール１０３０は、ＨＤＤ２０８の一時領域に出力したログ（ファイル）をＨＤＤ２０８のログ永続化領域に退避し、Ｓ１５０９において、対応する機能の期待ログ保存フラグをＯｎにする。詳細には、上記Ｓ１５０６でログ（ファイル）内に含まれていると判定された期待ログパターンが設定されている機能の期待ログ保存フラグをＯｎにする。そして、図３に示したＭＦＰの各モジュールは、再び定常動作に戻る（Ｓ１５０３）。
【０１０６】
一方、ＨＤＤ２０８のログ永続化領域に空きがないと判定した場合（Ｓ１５０７でＮｏ）、ログ自動退避モジュール１０３０は、Ｓ１５１０に処理を進める。
Ｓ１５１０では、ログ自動退避モジュール１０３０は、ログ動作設定１０１０に保持されている退避ログの上書きモードが上書き設定Ｏｎ（上書き有効）か否かを判定する。そして、上書きモードが上書き設定Ｏｎ（上書き有効）と判定した場合（Ｓ１５１０でＹｅｓ）、ログ自動退避モジュール１０３０は、Ｓ１５１３に処理を進める。
【０１０７】
Ｓ１５１３では、ログ自動退避モジュール１０３０は、ＨＤＤ２０８のログ永続化領域に存在するログファイルＢのうち、最古のログファイルを、ＨＤＤ２０８の一時領域に出力したログ（ファイル）で上書きする。さらに、Ｓ１５１４において、ログ自動退避モジュール１０３０は、対応する機能の期待ログ保存フラグをＯｎにする。詳細には、上記Ｓ１５０６でログ（ファイル）内に含まれていると判定された期待ログパターンが設定されている機能の期待ログ保存フラグをＯｎにする。そして、図３に示したＭＦＰの各モジュールは、再び定常動作に戻る（Ｓ１５０３）。
【０１０８】
なお、上記Ｓ１５０４で、上記事象発生の通知を受けると、デバッグログ管理モジュール３８２は、デバッグログ処理中となったことを、ＵＩアプリケーション３０１に通知する。この通知を受けて、ＵＩアプリケーション３０１は、操作部２１０に図１７のＭＦＰステータス表示を行う。そして、上記Ｓ１５０９又はＳ１５１４の処理を完了すると、デバッグログ管理モジュール３８２は、デバッグログ処理が終了したことを、ＵＩアプリケーション３０１に通知する。この通知を受けて、ＵＩアプリケーション３０１は、操作部２１０に図１８のＭＦＰステータス表示を行う。
【０１０９】
一方、上記Ｓ１５１０において、上書きモードが上書き設定Ｏｆｆ（上書き無効）と判定した場合（Ｓ１５１０でＮｏ）、ログ自動退避モジュール１０３０は、Ｓ１５１１に処理を進める。
【０１１０】
Ｓ１５１１では、ログ自動退避モジュール１０３０は、ＨＤＤ２０８の一時領域に出力したログ（ファイル）を破棄し、Ｓ１５１２において、ログ動作設定１０１０内のログ自動退避設定をＯｆｆし、処理を終了する。なお、Ｓ１５１２でログ自動退避設定をＯｆｆするのは、退避領域がフルになっていて且つ上書きしない設定のため、この状態でデバッグログ動作をしても無駄な動作となってしまうため、このような無駄な動作を避けるためである。
【０１１１】
以上でデバッグログ取得設定からログファイル自動退避までの処理が完結する。続いて、図１５を用いて説明した、ＵＳＢメモリでのログファイル回収を行うことで、所望のデバッグログを回収することができる。
【０１１２】
＜ＦＴＰサーバでの回収＞
以下、ＵＳＢメモリではなく、ＭＦＰとネットワーク接続されたサーバへ退避されたログを転送、回収する実施例について、図２０及び図９の１８３０を用いて説明する。
【０１１３】
図２０は、本実施例でＦＴＰサーバにログ回収する処理のフローチャートである。なお、このフローチャートの処理は、ＵＩアプリケーション３０１、ＵＳＢＩＦ管理モジュール３９０、デバッグログ管理モジュール３８２等により実行される（即ち、ＭａｉｎＣＰＵ２０５がＢｏｏｔＲＯＭ２０７から読み出されたファームウェアを実行することにより実現される）。
【０１１４】
なお、デバッグログ管理モジュール３８２内のログ転送モジュール１０５０は、ＵＳＢメモリの他にネットワーク接続された外部サーバへログファイルを転送する機能も備える。本実施例では、ログ転送モジュール１０５０が、ＦＴＰプロトコルを用いて、ＦＴＰサーバへ転送する構成を例に説明するが、他のプロトコルを用いて他の種類のサーバへ転送する構成であってもよい。また、サーバでなくとも、ＭＦＰ１００と通信可能な外部装置、例えば、ＮＡＳ（Network Attached Storage）であってもよい。
【０１１５】
操作部２１０からデバッグログステータス画面（図１３）を開く操作が行われると、ＵＩアプリケーション３０１は、デバッグログステータス画面を操作部２１０のタッチパネル付き表示部に表示する（Ｓ２００１）。
【０１１６】
また、ＵＩアプリケーション３０１は、ＦＴＰサーバ転送ボタン４９２が選択されたことを検知すると、ＦＴＰサーバ転送ボタン４９２を反転表示する（Ｓ２００２）。この状態で実行ボタン４０２が押下されたことを検知すると、ＵＩアプリケーション３０１は、その旨をデバッグログ管理モジュール３８２に通知する（Ｓ２００３）。
【０１１７】
上記Ｓ２００３の通知を受けると、デバッグログ管理モジュール３８２は、ログ転送モジュール１０５０を起動する。
次に、Ｓ２００４において、ログ転送モジュール１０５０は、ログ動作設定１０１０内のサーバ設定（具体的には、図９のサーバ設定１８３４）を用いてＦＴＰサーバ２５０への接続確認を行う。
【０１１８】
そして、ＦＴＰサーバ２５０への接続に失敗した（接続ＮＧ）場合（Ｓ２００４でＮｏ）、ログファイルの転送は不可能なため、Ｓ２００７において、ログ転送モジュール１０５０は、接続ＮＧをステータスボタン４９３に表示し、処理を終了する。
【０１１９】
一方、ＦＴＰサーバ２５０への接続に成功した（接続ＯＫ）場合（Ｓ２００４でＹｅｓ）、ログ転送モジュール１０５０は、Ｓ２００５に処理を進める。
Ｓ２００５では、ログ転送モジュール１０５０は、ＵＳＢメモリ転送と同様に、デバッグログ用ＲＡＭ領域１０４０の現時点のデバッグログをＨＤＤ２０８にファイル化する。
次に、Ｓ２００６において、ログ転送モジュール１０５０は、上記Ｓ２００５でＨＤＤ２０８にファイル化されたデバッグログ及びＨＤＤ２０８に自動退避されていたログファイルＢも含めて、ＦＴＰサーバ２５０に全てのログファイルを転送し、処理を終了する。
【０１２０】
＜デバッグログ回収完了時＞
デバッグログの取得が不要になった時点で、デバッグログ設定、及び、残ったログファイルのクリアなど、ＭＦＰ１００の動作を標準状態に戻す必要がある。
【０１２１】
そのために図１６で説明した設定クリアボタン５５０、ログファイルクリアボタン５５１が用意されており、これらのボタンを押下してクリア実行する。この操作によって、ＭＦＰ１００はデバッグログ取得設定する前の、標準動作状態に戻るため、以後、再度、明示的にデバッグログ動作設定を行わない限り、コントローラソフトウェア３００のデバッグログ管理モジュール３８２は動作することはない。
【０１２２】
また、上記実施例では、本発明の情報処理装置を、一実施例として、ＭＦＰ等の画像処理装置を用いて説明したが、本発明の情報処理装置は画像処理装置に限られるものではない。ファームウェアにより動作する情報処理装置であれば、どのような情報処理装置であってもよい。
【０１２３】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２４】
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等のプロセッサ）がプログラムを読み出して実行する処理である。
【０１２５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１２６】
以上説明したように、本発明によれば、デバッグログ取得（ファイル化）の自動化と、非開発者にも理解可能な取得設定および取得ステータスUIを備えることで、情報処理装置の制御ファームウェアにおける所望のデバッグログの取得の確率を向上し、ファームウェアの不具合調査の効率を高めることができる。
【符号の説明】
【０１２７】
１００    ＭＦＰ
２００    コントローラユニット
２１０    操作部
２０１    スキャナエンジン
２０２    プリンタエンジン
２０３    画像処理ボード
２６０    ＦＡＸデバイス
３００    コントローラソフトウェア
３８２    デバッグログ管理モジュール
３８５    エラーマネージャ
【図１】
0005656519.tif 000002
【図２】
0005656519.tif 000003
【図３】
0005656519.tif 000004
【図４】
0005656519.tif 000005
【図５】
0005656519.tif 000006
【図６】
0005656519.tif 000007
【図７】
0005656519.tif 000008
【図８】
0005656519.tif 000009
【図９】
0005656519.tif 000010
【図１０】
0005656519.tif 000011
【図１１】
0005656519.tif 000012
【図１２】
0005656519.tif 000013
【図１３】
0005656519.tif 000014
【図１４】
0005656519.tif 000015
【図１５】
0005656519.tif 000016
【図１６】
0005656519.tif 000017
【図１７】
0005656519.tif 000018
【図１８】
0005656519.tif 000019
【図１９】
0005656519.tif 000020
【図２０】
0005656519.tif 000021