(57)【要約】      （修正有）【課題】ログ情報の出力回数の上限設定を支援することができる、情報処理システム及び情報処理方法を提供する。【解決手段】画像形成装置に搭載可能なプログラムのソースコードに基づき、ソースコードに可変長で記述されている前記プログラムの第１のログ情報を所定の固定長で記述される前記プログラムの第２のログ情報に変換しプログラムを生成する生成手段と、第２のログ情報について、画像形成装置の所定の処理中において所定の処理に影響を与えずに出力可能な容量を算出し、算出された容量に基づき第２のログ情報の出力回数の上限を設定する設定手段と、所定の処理中において第２のログ情報の出力回数を計測する計測手段と、前記プログラムを示す情報と、第２のログ情報と、前記出力回数と、前記出力回数の上限と、を含むログ頻度情報を、情報処理装置に通知する通知手段と、を有する。【選択図】図５
2015200959.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置と、情報処理装置とを有する情報処理システムであって、
前記画像形成装置に搭載可能なプログラムのソースコードに基づき、該ソースコードに可変長で記述されている前記プログラムのログ情報を示す第１のログ情報を所定の固定長で記述される前記プログラムのログ情報を示す第２のログ情報に変換し、前記プログラムを生成する生成手段と、
前記第２のログ情報について、前記画像形成装置の所定の処理中において該所定の処理に影響を与えずに出力可能な容量を算出し、該算出された容量に基づき前記第２のログ情報の出力回数の上限を設定する設定手段と、
前記所定の処理中において前記プログラムにより出力される前記第２のログ情報の出力回数を計測する計測手段と、
前記プログラムを示す情報と、前記第２のログ情報と、前記出力回数と、前記出力回数の上限とを含むログ頻度情報を前記情報処理装置に通知する通知手段と、
を有する情報処理システム。
【請求項２】
前記設定手段は、前記算出された容量と予め設定された前記プログラムの優先度とに基づき前記第２のログ情報の出力回数の上限を設定する、請求項１記載の情報処理システム。
【請求項３】
前記生成手段により前記プログラムを生成する場合において、前記通知手段により通知された前記プログラムを示す情報が含まれたログ頻度情報が存在する場合、該ログ頻度情報を前記情報処理装置の表示部に表示させる、請求項１又は２記載の情報処理システム。
【請求項４】
ユーザから前記ログ頻度情報の表示要求があった場合において、前記通知手段により通知された前記プログラムを示す情報が含まれたログ頻度情報が存在する場合、該ログ頻度情報を前記情報処理装置の表示部に表示させる、請求項１又は２記載の情報処理システム。
【請求項５】
前記第２のログ情報と、該第２のログ情報に対応する前記第１のログ情報とを関連付けたログ対応情報を記憶する記憶手段と、
前記第２のログ情報が記録された電子データについて、前記ログ対応情報に基づき前記電子データ中に記録されている前記第２のログ情報を前記第１のログ情報に変換する変換手段と、
を有する請求項１ないし４のいずれか１項に記載の情報処理システム。
【請求項６】
所定の情報を暗号化する暗号化手段を有し、
前記通知手段は、前記ログ頻度情報をネットワークを介して前記画像形成装置から前記情報処理装置に通知する場合、前記ログ頻度情報を前記暗号化手段により暗号化してから通知する、請求項１ないし５のいずれか１項に記載の情報処理システム。
【請求項７】
前記所定の処理中における前記プログラムが出力する前記第２のログ情報の出力回数が前記出力回数の上限に達したか否かを判定し、前記出力回数が前記上限に達した場合、前記第２のログ情報の出力を抑止するログ出力抑止手段を有する請求項１ないし６のいずれか１項に記載の情報処理システム。
【請求項８】
前記所定の処理は、画像形成処理である、請求項１ないし６のいずれか１項に記載の情報処理システム。
【請求項９】
画像形成装置と、情報処理装置とを有する情報処理システムに用いられる情報処理方法であって、
前記画像形成装置に搭載可能なプログラムのソースコードに基づき、該ソースコードに可変長で記述されている前記プログラムのログ情報を示す第１のログ情報を所定の固定長で記述される前記プログラムのログ情報を示す第２のログ情報に変換し、前記プログラムを生成する生成手順と、
前記第２のログ情報について、前記画像形成装置の所定の処理中において該所定の処理に影響を与えずに出力可能な容量を算出し、該算出された容量に基づき前記第２のログ情報の出力回数の上限を設定する設定手順と、
前記所定の処理中において前記プログラムにより出力される前記第２のログ情報の出力回数を計測する計測手順と、
前記プログラムを示す情報と、前記第２のログ情報と、前記出力回数と、前記出力回数の上限とを含むログ頻度情報を前記情報処理装置に通知する通知手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
従来より、画像形成装置のステータス情報やエラー情報などの動作ログを示すログ情報を画像形成装置の内部に保存する技術が知られている（例えば特許文献１ないし４参照）。このようなログ情報は、例えば、画像形成装置に障害が発生した場合において、その発生原因の究明などに用いられる。したがって、このようなログ情報は、可能な限り細かい粒度で収集し、保存することが好ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の従来技術においては、ログ情報を収集する粒度が細かくなるほど、ログ情報を保存するための処理時間が増大する。このため、ログ情報を収集、保存する粒度を細かくすることにより、画像形成装置の例えば印刷処理などの画像形成処理の処理時間に影響を与える場合がある。したがって、ログ情報は、画像形成処理に影響を与えない範囲内で、可能な限り細かい粒度で収集、保存することが好ましい。
【０００４】
本発明の実施の形態は、上記の点に鑑みてなされたもので、ログ情報の出力回数の上限設定を支援することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の実施の形態は、画像形成装置と、情報処理装置とを有する情報処理システムであって、前記画像形成装置に搭載可能なプログラムのソースコードに基づき、該ソースコードに可変長で記述されている前記プログラムのログ情報を示す第１のログ情報を所定の固定長で記述される前記プログラムのログ情報を示す第２のログ情報に変換し、前記プログラムを生成する生成手段と、前記第２のログ情報について、前記画像形成装置の所定の処理中において該所定の処理に影響を与えずに出力可能な容量を算出し、該算出された容量に基づき前記第２のログ情報の出力回数の上限を設定する設定手段と、前記所定の処理中において前記プログラムにより出力される前記第２のログ情報の出力回数を計測する計測手段と、前記プログラムを示す情報と、前記第２のログ情報と、前記出力回数と、前記出力回数の上限とを含むログ頻度情報を前記情報処理装置に通知する通知手段と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明の実施の形態によれば、ログ情報の出力回数の上限設定を支援することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る情報処理システムの一例の構成図である。
【図２】本実施形態に係るコンパイル装置の一例のハードウェア構成図である。
【図３】本実施形態に係る画像形成装置の一例のハードウェア構成図である。
【図４】本実施形態に係るコンパイル装置の一例の処理ブロック図である。
【図５】本実施形態に係る画像形成装置の一例の処理ブロック図である。
【図６】ログ情報出力頻度テーブルの一例の構成図である。
【図７】ログ情報対応テーブルの一例の構成図である。
【図８】本実施形態に係るコンパイル処理の一例のフローチャートである。
【図９】本実施形態に係るログ情報変換処理の一例のフローチャートである。
【図１０】本実施形態に係るログ情報出力処理の一例のシーケンス図である。
【図１１】本実施形態に係るログ情報出力頻度テーブルの送信処理の一例のフローチャートである。
【図１２】本実施形態に係るログ情報参照処理の一例のフローチャートである。
【図１３】ログファイルの変換前後を説明するための図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、添付の図面を参照しながら説明する。
【０００９】
＜システム構成＞
まず、本実施形態に係る情報処理システムのシステム構成について説明する。図１は、本実施形態に係る情報処理システムの一例の構成図である。
【００１０】
本実施形態に係る情報処理システム１は、コンパイル装置１０と、画像形成装置２０とが、ＬＡＮ（Local Area Network）などのネットワークＮ１を介して接続されている。
【００１１】
コンパイル装置１０は、プログラムのソースコードをコンパイルし、画像形成装置２０が実行可能な形式のプログラムを生成する情報処理装置の一例である。コンパイル装置１０は、例えば、ＰＣ（Personal Computer）、タブレットＰＣ、ノートＰＣなどである。
【００１２】
画像形成装置２０は、複合機などの画像形成機能を有する装置である。画像形成装置２０は、複合機の他、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成機能に係る処理を行う装置である。
【００１３】
画像形成装置２０は、自身に搭載されている各種アプリケーション、プログラム、モジュールなどの動作情報、ステータス情報、エラー情報などのログ情報を収集し、画像形成装置２０に搭載されている記憶装置に保存する。
【００１４】
なお、情報処理システム１は、コンパイル装置１０と、画像形成装置２０とが、ネットワークＮ１で接続されているが、ネットワークＮ１で接続されていなくてもよい。すなわち、例えば、コンパイル装置１０、画像形成装置２０は、ネットワークに接続されていないいわゆるスタンドアローンであってもよい。また、情報処理システム１は、コンパイル装置１０と、画像形成装置２０とがそれぞれ１台ずつ接続されている構成を示しているが、これに限られず、コンパイル装置１０及び画像形成装置２０は、それぞれ１台以上の任意の台数が接続されていてもよい。
【００１５】
＜ハードウェア構成＞
次に、図１に示されているコンパイル装置１０及び画像形成装置２０のハードウェア構成について説明する。
【００１６】
《コンパイル装置》
図２は、本実施形態に係るコンパイル装置の一例のハードウェア構成図である。図２に示されるコンパイル装置１０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、及びＨＤＤ（Hard Disk Drive）１０８などを備え、それぞれがバスＢで相互に接続されている。
【００１７】
入力装置１０１はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置１０２はディスプレイ等を含み、コンパイル装置１０による処理結果を表示する。なお、入力装置１０１及び表示装置１０２は必要なときに接続して利用する形態であってもよい。
【００１８】
通信Ｉ／Ｆ１０７はコンパイル装置１０をネットワークＮ１に接続するインタフェースである。これにより、コンパイル装置１０は通信Ｉ／Ｆ１０７を介してデータ通信を行うことができる。
【００１９】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンパイル装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、及びＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。なお、コンパイル装置１０はＨＤＤ１０８に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００２０】
ＨＤＤ１０８は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。
【００２１】
これにより、コンパイル装置１０は外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａにはフレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリなどがある。
【００２２】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５にはコンパイル装置１０の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４はプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２３】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８などの記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、処理を実行することで、コンパイル装置１０全体の制御や機能を実現する演算装置である。コンパイル装置１０は、上記ハードウェア構成により、後述する各種処理を実現できる。
【００２４】
《画像形成装置》
図３は、本実施形態に係る画像形成装置の一例のハードウェア構成図である。図３に示される画像形成装置２０は、コントローラ２０１、操作パネル２０２、外部Ｉ／Ｆ２０３、通信Ｉ／Ｆ２０４、プリンタ２０５及びスキャナ２０６などを備える。
【００２５】
コントローラ２０１はＣＰＵ２１１、ＲＡＭ２１２、ＲＯＭ２１３、ＮＶＲＡＭ２１４及びＨＤＤ２１５などを備える。ＲＯＭ２１３は、各種プログラムやデータが格納されている。ＲＡＭ２１２はプログラムやデータを一時保持する。ＮＶＲＡＭ２１４は、例えば設定情報等が格納されている。また、ＨＤＤ２１５は各種プログラムやデータが格納されている。
【００２６】
ＣＰＵ２１１は、ＲＯＭ２１３やＮＶＲＡＭ２１４、ＨＤＤ２１５などからプログラムやデータ、設定情報等をＲＡＭ２１２上に読み出し、処理を実行することで、画像形成装置２０全体の制御や機能を実現する。
【００２７】
操作パネル２０２はユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２０３は外部装置とのインタフェースである。外部装置には、記録媒体２０３ａなどがある。これにより、画像形成装置２０は外部Ｉ／Ｆ２０３を介して記録媒体２０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体２０３ａにはＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２８】
通信Ｉ／Ｆ２０４は、画像形成装置２０をネットワークＮ１に接続するインタフェースである。これにより、画像形成装置２０は通信Ｉ／Ｆ２０４を介してデータ通信を行うことができる。プリンタ２０５は、印刷データを用紙に印刷するための印刷装置である。スキャナ２０６は原稿から画像データ（電子データ）を読み取るための読取装置である。画像形成装置２０は、上記ハードウェア構成により、後述する各種処理を実現できる。
【００２９】
＜ソフトウェア構成＞
《コンパイル装置》
本実施形態に係るコンパイル装置１０は、例えば図４に示すような処理ブロックにより実現することができる。図４は、本実施形態に係るコンパイル装置の一例の処理ブロック図である。
【００３０】
コンパイル装置１０は、コンパイラ１１と、ログ情報変換部１２と、ログ情報対応付け部１３とを有している。また、コンパイル装置１０は、ログ情報出力頻度テーブル１０００と、ログ情報対応テーブル２０００とを利用する。
【００３１】
コンパイラ１１は、プログラムのソースコードをコンパイルして、画像形成装置２０で実行可能なプログラムを生成する処理を行う。
【００３２】
ログ情報変換部１２は、コンパイラ１１がコンパイルするソースコード中に記述されている、ログ情報として出力される文字列（文字列データ）を固定長の数値データ（ログＩＤ）に変換（置換）する処理を行う。換言すれば、ログ情報変換部１２は、コンパイラ１１がコンパイルするソースコード中にログ情報として出力される可変長で定義された文字列データを固定長の数値データに置換する処理を行う。また、ログ情報変換部１２は、文字列データをログＩＤに変換したソースコードに対応するプログラム名と、変換後のログＩＤと、このログＩＤに対応する文字列データとを関連付けてログ情報対応テーブル２０００に記録する。
【００３３】
ログ情報対応付け部１３は、電子データの一例としてのログファイルに出力されている固定長の数値データに変換されたログ情報（ログＩＤ）を、後述するログ情報対応テーブル２０００を参照して対応するプログラム名と文字列データとに変換（置換）する処理を行う。換言すれば、コンパイラ１１によりコンパイルされたプログラムがログファイルに出力した変換後のログ情報（ログＩＤ）について、ログ情報対応テーブル２０００を参照して、このログＩＤを出力したプログラム名と、このログＩＤに対応する文字列データとに置換する。
【００３４】
《画像形成装置》
本実施形態に係る画像形成装置２０は、例えば図５に示すような処理ブロックにより実現することができる。図５は、本実施形態に係る画像形成装置の一例の処理ブロック図である。なお、図５の画像形成装置２０は、本実施形態の説明に不要な処理ブロックについての図示を省略している。
【００３５】
画像形成装置２０は、アプリケーション層２１と、サービス層２２と、ＯＳ２３と、記憶部２４とを有する。
【００３６】
アプリケーション層２１は、印刷アプリケーション３１、スキャナアプリケーション３２、コピーアプリケーション３３などの各種画像形成処理を行うアプリケーション（プログラム）を有する。また、アプリケーション層２１は、これらのプログラムの他に、例えば、画像形成装置２０のファームウェアをアップデートするためのプログラムなど各種プログラムを有していてもよい。なお、これらの各種プログラムは、ＳＤＫ（Software Development Kit）を利用して開発されたプログラムであるＳＤＫアプリケーションであってもよい。
【００３７】
印刷アプリケーション３１は、画像データ（電子データ）の印刷処理を行う。スキャナアプリケーション３２は、原稿を読み取り画像データ（電子データ）を生成するスキャン処理を行う。コピーアプリケーション３３は、原稿を読み取り複製した原稿を出力するコピー処理を行う。
【００３８】
サービス層２２は、電力制御４１、ログ記録部４２、ネットワーク制御４３などのアプリケーション層２１の各種アプリケーション（プログラム）が共通に利用する各種プログラムを有する。また、サービス層２２は、これらのプログラムの他に、例えば、画像形成装置２０の用紙トレイや給紙排紙のためのドアを管理するためのプログラムや画像形成装置２０の障害状態を管理するためのプログラム、アプリケーション層２１の各種アプリケーションの情報を管理するためのプログラムなどを有していてもよい。
【００３９】
電力制御４１は、画像形成装置２０の電力状態を管理する。電力制御４１は、例えば、画像形成装置２０の電源ＯＮや電源ＯＦＦ、省エネ状態への移行などを検出する。
【００４０】
ログ記録部４２は、アプリケーション層２１の各種プログラム、サービス層２２の各種プログラム、ＯＳ２３などが出力する各種のログ情報を記憶部２４の所定の領域に保存する。なお、ログ情報は、例えばプログラムのステータス情報やエラー情報などのプログラムの動作情報を示す情報である。
【００４１】
また、ログ記録部４２は、印刷処理やスキャン処理などのイベント中にログ情報を出力したプログラムの名称と、このイベント中におけるログ情報の出力回数とをイベント名と関連付けてログ情報出力頻度テーブル１０００に記録する。
【００４２】
なお、ログ情報を保存するためのログ保存領域は、各プログラム毎に記憶部２４に割り当てられている。各ログ保存領域は、例えばＲＡＭ２１２などの揮発性の記憶装置上に構成され、所定の容量のログ情報がログ保存領域に保存されると又は所定のタイミングで、ＨＤＤ２１５などの不揮発性の記憶装置上に構成されるログファイルに出力される。
【００４３】
ネットワーク制御４３は、通信Ｉ／Ｆ２０４を制御し、コンパイル装置１０や他の画像形成装置２０などと通信を行う。
【００４４】
ＯＳ２３は、画像形成装置２０の全体を制御する。ＯＳ２３は、例えば、ＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）などの汎用オペレーティングシステムであり、アプリケーション層２１及びサービス層２２の各種プログラムをそれぞれプロセスとして並列に実行することができる。
【００４５】
記憶部２４は、画像形成装置２０の各種情報やデータなどを記憶するたの記憶領域である。記憶部２４は、ＲＡＭ２１２やＨＤＤ２１５などにより実現され、ログ情報出力頻度テーブル１０００を有する。なお、記憶部２４は、上述したように、画像形成装置２０が有する各種プログラムのログ情報を保存するための記憶領域（ログ保存領域）をプログラム毎に有する。
【００４６】
《ログ情報出力頻度テーブル》
ログ情報出力頻度テーブル１０００は、例えば図６に示されるデータ項目を有している。図６は、ログ出力頻度テーブルの一例の構成図である。
【００４７】
図６に示されるログ情報出力頻度テーブル１０００は、「イベント」、「名称」、「ログ出力回数」、「出力上限」などのデータ項目を有している。
【００４８】
「イベント」は、ログ情報の出力を行った際に画像形成装置２０が実行しているイベント名である。イベント名は、例えば、印刷、スキャン、コピーなどの画像形成装置２０が実行する画像形成処理の名称である。例えば、印刷アプリケーション３１による印刷処理中にネットワーク制御４３がログ情報の出力を行った場合、イベント名として「印刷」が指定される。同様に、例えば、スキャナアプリケーション３２によるスキャン処理中にログ情報の出力を行った場合、イベント名として「スキャン」が指定される。
【００４９】
「名称」は、ログ情報の出力を行ったプログラム名である。「ログ出力回数」は、「イベント」で指定されるイベント中に、「名称」で指定されるプログラムがログ情報の出力を行った回数である。例えば、ログ情報出力頻度テーブル１０００の１レコード目は、印刷アプリケーション３１による印刷処理中に、ネットワーク制御４３がログ情報の出力を４回行ったことを示している。
【００５０】
「出力上限」は、「イベント」で指定されるイベント中に、「名称」で指定されるプログラムがログ情報の出力を行うことができる上限回数である。例えば、ログ情報出力頻度テーブル１０００の１レコード目は、印刷アプリケーション３１による印刷処理中に、ネットワーク制御４３はログ情報の出力を最大１０回行うことができることを示している。
【００５１】
なお、ログ情報出力頻度テーブル１０００は、イベント名毎に異なるテーブルで構成されていてもよい。
【００５２】
《ログ情報対応テーブル》
ログ情報対応テーブル２０００は、例えば図７に示されるデータ項目を有している。図７は、ログ情報対応テーブルの一例の構成図である。
【００５３】
図７に示されるログ情報対応テーブル２０００は、「名称」、「ログＩＤ」、「文字列データ」などのデータ項目を有している。
【００５４】
「名称」は、ログ情報変換部１２が文字列データを固定長の数値データに変換（置換）したソースコードに対応するプログラムのプログラム名である。
【００５５】
「ログＩＤ」は、ログ情報変換部１２が文字列データを変換した固定長の数値データである。ログＩＤは、固定長であれば何バイトのデータでも良いし、数値データでなくてもよい。また、ログＩＤは、ログ情報変換部１２により、情報処理システム１においてログＩＤ又は名称とログＩＤとの組が一意になるように採番される。「文字列データ」は、ログＩＤに対応する文字列データである。
【００５６】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。
【００５７】
《コンパイル処理》
まず、本実施形態に係る情報処理システム１のコンパイル処理について説明する。コンパイル処理は、画像形成装置２０に搭載するプログラムのソースコードをコンパイルして実行可能形式のプログラムを生成する処理である。また、この処理において、ソースコード中にログ情報として出力される可変長で記述されている文字列データを、固定長の数値データに変換（置換）する処理を行う。
【００５８】
まず、ユーザが、例えばＳＤメモリカード、ＵＳＢメモリ等に記録されているプログラムのソースコードのコンパイルを行う指示を行うと、コンパイラ１１は、コンパイル対象のソースコードの名称（プログラム名）を取得する（ステップＳ８０１）。なお、ユーザは、プログラムのソースコードを、例えば、ネットワークを介してコンパイル装置１０に送信し、コンパイルを行う指示を行ってもよい。
【００５９】
すると、コンパイラ１１は、コンパイル装置１０の所定の記憶領域に記憶されているログ情報対応テーブル２０００を取得する（ステップＳ８０２）。
【００６０】
コンパイラ１１は、ログ情報出力頻度テーブル１０００の「名称」のデータ項目について、ステップＳ８０１で取得したプログラム名であるレコードが存在するか否かを判定する（ステップＳ８０３）。ステップＳ８０１で取得したプログラム名のレコードが存在する場合、ステップＳ８０４に進み、存在しない場合、ステップＳ８０５に進む。
【００６１】
コンパイラ１１は、ログ情報出力頻度テーブル１０００の「名称」のデータ項目について、該当のプログラム名のレコードが存在する場合、このレコードの内容を出力する（ステップＳ８０４）。このとき、コンパイラ１１は、例えば、該当のレコードの内容をコンパイル装置１０の表示装置１０２に表示（出力）する。
【００６２】
これにより、ユーザは、これからコンパイルするソースコードに対応するプログラムが、所定のイベント中に、どれだけのログ情報を出力しているか、また、そのイベント中におけるログ情報の出力上限回数を知ることができる。例えば、ユーザがこれからコンパイルするソースコードに対応するプログラムが「ネットワーク制御」である場合、ユーザは、画像形成装置２０における印刷処理中にネットワーク制御４３は、４回のログ情報を出力していること、また、印刷処理中におけるログ情報の出力上限回数は１０回であることを知ることができる。したがって、ユーザは、これらの情報を基に、該当のプログラムの該当のイベント中におけるログ情報の出力回数を削減又は増加させることができる。換言すれば、ユーザは、該当のプログラムについて、該当のイベント中におけるログ情報の出力回数の改善を行うことができる。このように、本実施形態に係る情報システム１は、例えばＳＤＫアプリケーションの開発者（ユーザ）に対して、ログ情報の出力回数に関する情報を提供することで、所定のイベント（印刷処理など）中におけるログ情報の出力に関する設計改善のための情報の提供することができる。
【００６３】
なお、上記のステップＳ８０４において、ログ情報出力頻度テーブル１０００の該当のレコードの内容を出力する際、このレコードの「ログ出力回数」のデータ項目の値が「出力上限」のデータ項目の値を超えている場合、ログ情報の出力回数の削減を促すメッセージなどを表示させてもよい。例えば、コンパイラ１１はコンパイル装置１０の表示装置１０２に、該当のレコードの内容とともに（又は該当のレコードの内容は表示させずに）、「！上限値を超えています。ログ出力回数を減らして下さい！」とのメッセージを表示させる。他方、ログ情報出力頻度テーブル１０００の該当のレコードの内容を出力する際、このレコードの「ログ出力回数」のデータ項目の値が「出力上限」のデータ項目の値を超えていない場合、ログ情報の出力回数が出力上限に収まっていることを示すメッセージなどを表示させる。
【００６４】
続いて、ユーザがコンパイラ１１に対してコンパイルの実行を開始する指示を行う（ステップＳ８０５）。すると、ログ情報変換部１２は、コンパイル対象のソースコード中に可変長の文字列データで記述されたログ情報を固定長の数値データで記述されたログ情報に変換する処理を行う（ステップＳ８０６）。このログ情報変換処理の詳細については後述する。
【００６５】
そして、コンパイラ１１は、上記のステップＳ８０５においてログ情報変換部１２により変換された変換後のログ情報（ログＩＤ）が記述されたソースコードをコンパイルし、実行可能形式のデータ（プログラム）を生成する（ステップＳ８０７）。
【００６６】
これにより、コンパイル処理において生成されたプログラムは、固定長の数値データをログ情報として出力する。したがって、コンパイル装置１０によってコンパイルされ、画像形成装置２０に搭載される各種プログラムが出力するログ情報は、すべて固定長の数値データ（ログＩＤ）となる。
【００６７】
なお、コンパイル装置１０の所定の記憶領域に保存されているログ情報出力頻度テーブル１０００について、上記で説明したコンパイル処理に限られず、ユーザから表示要求があったタイミングでコンパイル装置１０の表示装置１０２などに表示（出力）させてもよい。
【００６８】
《ログ情報変換処理》
次に、上記のコンパイル処理におけるステップＳ８０６のログ情報変換処理の詳細について説明する。図９は、本実施形態に係るログ情報変換処理の一例のフローチャートである。
【００６９】
ログ情報変換部１２は、コンパイル対象のソースコード中において、ログ情報として出力される文字列データを特定する（ステップＳ９０１）。これは、例えば、コンパイラ１１がソースコード中に記述された可変長の文字列データを格納する所定の記憶領域（例えば、「．ｔｅｘｔ」セクション）において、所定の接頭子（例えば、「ｌｏｇ：」）が付いている文字列データを、ログ情報として出力される文字列データとして特定する。
【００７０】
ログ情報変換部１２は、上記のステップＳ９０１で特定した文字列データを、ログＩＤを示す固定長の数値データに変換（置換）する（ステップＳ９０２）。ログ情報変換部１２は、例えば、あるプログラムのソースコード中にログ情報として出力される文字列データ「エラー発生」を、固定長の数値データ「１０００」に置換する。なお、数値データは、情報処理システム１において当該数値が一意となるように又は当該数値とコンパイル対象のソースコードのプログラム名との組が一意となるように採番する。換言すれば、ログ情報変換部１２は、ログ情報対応テーブル２０００において数値データが示す数値が一意になるように採番すればよい。
【００７１】
続いて、ログ情報変換部１２は、上記のステップＳ９０２において変換したログ情報（ログＩＤ）と、変換前のログ情報（文字列データ）と、コンパイル対象のソースコードのプログラム名とを関連付けてログ情報対応テーブル２０００に記録する（ステップＳ９０３）。
【００７２】
これにより、コンパイラ１１によりコンパイルされ、生成されたプログラムが出力するログ情報はすべて固定長のログＩＤとなる。また、このログＩＤに対応するログ情報の内容（文字列データ）は、ログ情報対応テーブル２０００により管理される。後述するように、画像形成装置２０に搭載されるプログラムが出力するログ情報をすべて固定長のログＩＤとすることにより、画像形成装置２０の例えば印刷処理などの画像形成処理中に、この画像形成処理に影響を与えないでログ情報の出力を行うことができる上限回数（閾値）を容易に算出することができるようになる。
【００７３】
《ログ情報出力処理》
次に、本実施形態に係る画像形成装置２０に搭載されているプログラムが、所定のイベント中にログ情報を出力した場合の処理について説明する。なお、本実施形態では、一例として、画像形成装置２０の印刷処理中に、電力制御４１及びネットワーク制御４３がログ情報を出力する場合について説明する。図１０は、本実施形態に係るログ情報出力処理の一例のシーケンス図である。
【００７４】
印刷アプリケーション３１は、印刷処理を開始すると、印刷処理の開始を示す情報をログ記録部４２に通知する（ステップＳ１００１）。
【００７５】
ログ記録部４２は、印刷アプリケーション３１から印刷処理の開始を示す情報を受け取ると、この印刷処理中におけるログ情報の出力回数と、ログ情報を出力したプログラム名とを記録するために、ログ情報の出力回数の計測を開始する（ステップＳ１００２）。
【００７６】
電力制御４１及びネットワーク制御４３は、ログ情報をログ記録部４２に対して出力する（ステップＳ１００３）。例えば、電力制御４１は、印刷処理中に電力状態が変更になった場合、ステータス情報の変更を示すログ情報などを出力する。また、例えば、ネットワーク制御４３は、印刷処理中に、他の装置からデータを受信した場合、ステータス情報がデータ受信中に変更になったことを示すログ情報などを出力する。なお、ログ記録部４２は、ログ情報を受け取ると、記憶部２４に割り当てられている、このログ情報を出力したプログラムに対応するログ保存領域にログ情報を保存する。なお、ここで電力制御４１及びネットワーク制御４３が出力するログ情報は、固定長の数値データで表されたログ情報（ログＩＤ）である。
【００７７】
なお、このとき、ログ記録部４２は、ログ情報出力頻度テーブル１０００を参照し、ログ情報の出力上限に達しているか否かを判定し、出力上限に達している場合、該当のプログラムに対してログ情報の出力を抑制させてもよい。すなわち、ログ記録部４２は、例えば、画像形成装置２０に搭載されているプログラムからログ情報を受け取る都度、ログ情報出力頻度テーブル１０００を参照し、ログ情報の出力回数が出力上限に達しているか否かを判定する。そして、出力回数が出力上限に達している場合、このログ情報を出力したプログラムに対して、このイベント中において以降、ログ情報の出力を行わないように抑止させる。
【００７８】
印刷アプリケーション３１は、印刷処理が終了すると、印刷処理の終了を示す情報をログ記録部４２に通知する（ステップＳ１００４）。
【００７９】
ログ記録部４２は、印刷アプリケーション３１から印刷処理の終了を示す情報を受け取ると、この印刷処理中におけるログ情報の出力回数の計測を終了する（ステップＳ１００５）。
【００８０】
そして、ログ記録部４２は、ログ情報出力頻度テーブル１０００に、この印刷処理中に発生したログ情報の出力回数をプログラム毎に記録又は更新する（ステップＳ１００６）。すなわち、ログ記録部４２は、ステップＳ１０００３において受け取ったログ情報について、このログ情報を出力したプログラム名と、このプログラムがイベント中に出力したログ情報の出力回数とをイベント名（ここでは、印刷処理を示す「印刷」）と関連付けてログ情報出力頻度テーブル１０００に記録又は更新する。
【００８１】
ここで、「出力上限」のデータ項目値は、画像形成装置２０により自動的に値が設定（更新）がされる。すなわち、ログ記録部４２は、イベント名と、このイベント中にログ情報を出力したプログラム名と、このプログラムのログ情報の出力回数とをログ情報出力頻度テーブル１０００に記録又は更新する際に、「出力上限」のデータ項目値を設定するようにしてもよい。「出力上限」のデータ項目値は、例えば、次のようにして設定することができる。
（１）イベント（例えば印刷処理）中に、このイベントに影響を与えないでログ情報の出力を行うできる容量（総出力上限容量）を算出する。これは、画像形成装置２０は、あるイベント中におけるＣＰＵ２１１の空き時間を計測することができるため、例えば、次の式で算出することができる。
総出力上限容量［byte］＝イベント中におけるＣＰＵ２１１の空き時間［sec］×ログ保存領域への書き込み速度［byte/sec］
（２）上記で算出した総出力上限容量から、プログラムの優先度に応じて、各プログラムの「出力上限」のデータ項目値を設定する。ここで、プログラムの優先度とは、ログ情報の出力を他のプログラムよりも優先させる度合いを示す情報である。例えば、重要な処理を担うプログラムや、障害が発生した場合における原因究明の観点からログ情報の出力を優先させたいプログラムは優先度が高いプログラムである。なお、プログラムの優先度に代えて又は優先度に加えて、過去、このプログラムが出力したログ情報の出力回数に応じて、「出力上限」のデータ項目値を設定してもよい。
【００８２】
上記の（２）について、具体的に説明すれば、画像形成装置２０の印刷処理中における総出力上限容量が１００バイトであり、ログＩＤが４バイトある場合、印刷処理に影響を与えないでログ情報を出力することができる上限回数は２５回である。他方、印刷処理中において、ログ情報を出力するプログラムは、例えば、電力制御４１及びネットワーク制御４３であり、それぞれの優先度は２及び３であったとする。この場合、ログ記録部４２は、電力制御４１の印刷処理中におけるログ情報の「出力上限」のデータ項目値を１０に設定し、一方、ネットワーク制御４３の印刷処理中におけるログ情報の「出力上限」のデータ項目値を１５に設定する。
【００８３】
なお、「出力上限」のデータ項目については、予めユーザにより値が設定されていてもよいし、ログ記録部４２による更新前の値をそのまま用いてもよい。
【００８４】
これにより、本実施形態に係る画像形成装置２０は、画像形成処理などのイベント中において、各種プログラムのログ情報の出力回数を計測することができる。また、本実施形態に係る画像形成装置２０は、計測したイベント毎及びプログラム毎の出力回数をログ情報出力頻度テーブル１０００に記録する。なお、ここで作成したログ情報出力頻度テーブルは、後述する処理において、コンパイル装置１０に送信する。
【００８５】
《ログ情報出力頻度テーブルの送信処理》
次に、ログ情報出力頻度テーブル１０００の送信処理について説明する。図１１は、本実施形態に係るログ情報出力頻度テーブルの送信処理の一例のフローチャートである。
【００８６】
電力制御４１は、画像形成装置２０の電源ＯＦＦを検出すると（ステップＳ１１０１）、ログ記録部４２に対して電源ＯＦＦになることを示す情報を通知する。
【００８７】
ログ記録部４２は、電力制御４１から電源ＯＦＦになることを示す情報を受け取ると、ログ情報出力頻度テーブル１０００にレコードが存在するか否かを判定する（ステップＳ１１０２）。ログ情報出力頻度テーブル１０００にレコードが存在する場合、ステップＳ１１０３に進み、レコードが存在しない場合、処理を終了させる（すなわち、画像形成装置２０の電源をＯＦＦにする）。
【００８８】
ログ記録部４２は、ログ情報出力頻度テーブル１０００にレコードが存在する場合、ログ情報出力頻度テーブル１０００を通信Ｉ／Ｆを介してコンパイル装置１０に送信する（ステップＳ１１０３）。
【００８９】
上記処理の後、本実施形態に係るコンパイル装置１０は、画像形成装置２０からログ情報出力頻度テーブル１０００を受信すると、このログ情報出力頻度テーブル１０００を所定の記憶領域に保存する。この保存されたログ情報出力頻度テーブル１０００は、上述したコンパイル処理において、該当のレコードの内容がユーザに出力される。なお、情報処理システム１において、複数の画像形成装置２０が接続されている場合は、コンパイル装置１０は複数の画像形成装置２０からログ情報出力頻度テーブル１０００を受信する。この場合、コンパイル装置１０は、受け取った複数のログ情報出力頻度テーブル１０００について、例えば、それぞれ対応するレコードの「ログ出力回数」及び「出力上限」のそれぞれの平均値を「ログ出力回数」のデータ項目値及び「出力上限」のデータ項目値とすればよい。
【００９０】
なお、上記においては、画像形成装置２０の電源がＯＦＦにされた場合にログ情報出力頻度テーブル１０００をコンパイル装置１０に送信する処理を説明したが、ログ情報出力頻度テーブル１０００は任意のタイミングでコンパイル装置１０に送信してもよい。例えば、図１０におけるステップＳ１００６の処理の後、ログ情報出力頻度テーブル１０００をコンパイル装置１０に送信するようにしてもよい。
【００９１】
なお、画像形成装置２０は、ログ情報出力頻度テーブル１０００を暗号化部（不図示）により暗号化して、コンパイル装置１０に送信してもよい。これにより、ログ情報出力頻度テーブル１０００の内容について情報漏えいを防止することができる。
【００９２】
《ログ情報参照処理》
次に、画像形成装置２０に搭載される各種プログラムから出力されたログ情報が記録されているログファイルを参照する場合の処理について説明する。ここで、ログファイルに記録されているログ情報は、固定長の数値データ（ログＩＤ）である。したがって、以降で説明するログ情報参照処理は、このログＩＤを対応する文字列データに変換するための処理である。図１２は、本実施形態に係るログ情報参照処理の一例のフローチャートである。
【００９３】
まず、ユーザは、例えばコンパイル装置１０の外部Ｉ／Ｆ１０３を介してＳＤメモリカードやＵＳＢメモリに記憶させたログファイルを開く（ステップＳ１２０１）。このとき、上述したようにログファイルには、図１３（ａ）に示されるように画像形成装置２０に搭載された各種プログラムがログ情報として出力したログＩＤが記録されている。
【００９４】
次に、ログ情報対応付け部１３は、ログファイルからログＩＤを１レコード取得する（ステップＳ１２０２）。
【００９５】
続いて、ログ情報対応付け部１３は、ログ情報対応テーブル２０００を参照し、上記のステップＳ１２０２で取得したログＩＤを、プログラム名と文字列データとに変換（置換）する（ステップＳ１２０３）。ログ情報対応付け部１３は、例えば、上記のステップＳ１２０２において、ログＩＤとして「１００１」を取得した場合、このログＩＤをプログラム名「ネットワーク制御」と文字列データ「データ受信中」とに変換（置換）する。なお、ログ情報対応付け部１３は、ログＩＤを、単に、文字列データに変換（置換）してもよい。
【００９６】
ログ情報対応付け部１３は、ログファイルに次のログＩＤ（レコード）が存在するか否かを判定する（ステップＳ１２０４）。ログファイルに次のログＩＤが存在する場合、ステップＳ１２０２に戻る。他方、次のログＩＤが存在しない場合、ステップＳ１２０５に進む。
【００９７】
ログ情報対応付け部１３は、上記の各ステップにおいてログＩＤを置換（変換）したログファイルを出力する（ステップＳ１２０５）。ここで出力されるファイルは、例えば図１３（ｂ）に示されるように、すべてのログＩＤが、このログＩＤを出力したプログラム名とこのログＩＤに対応する文字列データとに変換（置換）されたファイルである。なお、変換後のログファイルの出力先としては、コンパイル装置１０の表示装置１０２でもよいし、外部Ｉ／Ｆ１０３や通信Ｉ／Ｆ１０７などであってもよい。
【００９８】
これにより、ユーザは、ログファイルに記録されているログ情報について、ログ情報を出力したプログラム名とログ情報の内容とを確認することができる。すなわち、本実施形態に係る画像形成装置２０に搭載される各種プログラムから出力されるログ情報は、固定長の数値データ（ログＩＤ）であるため、ユーザはログファイルを参照してもログ情報の内容を知ることができない。このため、上記で説明した処理により、ログＩＤを、このログＩＤを出力したプログラム名と、このログＩＤに対応する文字列データに変換することで、ユーザは、ログ情報を出力したプログラム名とログ情報の内容を知ることができる。
【００９９】
＜まとめ＞
以上により本実施形態に係る情報処理システム１は、画像形成装置２０に搭載されるプログラムのソースコードをコンパイル装置１０においてコンパイルする際に、このソースコード中に記述されているログ情報として出力される可変長の文字列データを、固定長の数値データに変換する。これにより、本実施形態に係る画像形成装置２０において出力されるログ情報は、すべて固定長のデータとなる。したがって、画像形成装置２０の例えば画像形成処理において、この画像形成処理に影響を与えることなくログ情報を出力することができる出力回数を容易に算出することができる。
【０１００】
本実施形態に係る情報処理システム１は、画像形成装置２０の例えば画像形成処理に影響を与えることなくログ情報を出力することができる出力回数（上限回数）を、例えばＳＤＫアプリケーションの開発者（ユーザ）に提供することで、プログラムにおけるログ情報出力の設計改善等を支援することができる。
【０１０１】
本実施形態におけるコンパイラ１１及びログ情報変換部１２は、生成手段の一例である。ログ記録部４２は、設定手段、計測手段、通知手段及びログ出力抑止手段の一例である。ログ情報対応付け部１３は、変換手段の一例である。
【０１０２】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０３】
１        情報処理システム
１０      コンパイル装置
１１      コンパイラ
１２      ログ情報変換部
１３      ログ情報対応付け部
２０      画像形成装置
２１      アプリケーション層
２２      サービス層
２３      ＯＳ
３１      印刷アプリケーション
３２      スキャナアプリケーション
３３      コピーアプリケーション
４１      電力制御
４２      ログ記録部
４３      ネットワーク制御
１０００  ログ情報出力頻度テーブル
２０００  ログ情報対応テーブル
Ｎ１    ネットワーク
【先行技術文献】
【特許文献】
【０１０４】
【特許文献１】特開２００４−３５１８０５号公報
【特許文献２】特許第３９２０８９３号公報
【特許文献３】特許第４８６８２０４号公報
【特許文献４】特開２０１３−３００４４号公報
【図１】
2015200959.tif 000003
【図２】
2015200959.tif 000004
【図３】
2015200959.tif 000005
【図４】
2015200959.tif 000006
【図５】
2015200959.tif 000007
【図６】
2015200959.tif 000008
【図７】
2015200959.tif 000009
【図８】
2015200959.tif 000010
【図９】
2015200959.tif 000011
【図１０】
2015200959.tif 000012
【図１１】
2015200959.tif 000013
【図１２】
2015200959.tif 000014
【図１３】
2015200959.tif 000015