(57)【特許請求の範囲】
【請求項１】
コンピュータ装置とそのコンピュータ装置に接続された１以上の周辺装置とを有し、前記コンピュータ装置により、少なくとも１つの前記周辺装置について、その周辺装置の動作に関する記録であるログを収集するログ収集システムであって、
前記周辺装置は、
その周辺装置の動作に関する第１ログを第１ログ記憶領域に記憶させる第１ログ記憶制御手段と、
前記第１ログ記憶領域に記憶される第１ログのうち、前記周辺装置の動作に影響を及ぼす動作に関する情報を第２ログとして第２ログ記憶領域にも記憶させる第２ログ記憶制御手段とを備え、
前記コンピュータ装置は、
そのコンピュータ装置が行った前記周辺装置に関わる動作に関する第３ログを第３ログ記憶領域に記憶させる第３ログ記憶制御手段と、
前記第２ログ記憶手段に記憶された第２ログを前記周辺装置より取得して第４ログ記憶領域に記憶させる処理を、所定のタイミング毎に繰り返し実行する第２ログ取得手段と、
ログ収集の実行開始指示を受け付ける指示受付手段と、
その指示受付手段により前記実行開始指示が受け付けられたことを契機として、前記第１ログ記憶領域に記憶された第１ログを前記周辺装置より取得する第１ログ取得手段と、
その第１ログ取得手段により取得された第１ログと、前記第３ログ記憶制御手段により前記第３ログ記憶領域に記憶された第３ログと、前記指示受付手段により前記実行開始指示が受付けられた際に前記第２ログ取得手段により前記第４ログ記憶領域に記憶された第２ログとを１つのファイルにまとめたログ情報を、前記指示受付手段により前記実行開始指示が受け付けられたことを契機として生成するログ情報生成手段とを備えていることを特徴とするログ収集システム。
【請求項２】
前記周辺装置は、
その周辺装置内部で使用する時間を計時する第１計時手段を備え、
前記コンピュータ装置は、
そのコンピュータ装置内部で使用する時間を計時する第２計時手段と、
前記第１計時手段によって計時された時間を取得する周辺装置時間取得手段と、
その周辺装置時間取得手段により取得された時間と、その時間を取得した場合に前記第２計時手段により計時された時間との差分を算出する時間差分算出手段とを備え、
前記第２ログ記憶制御手段は、前記第２ログ記憶領域に前記第２ログを記憶する場合に前記第１計時手段により計時された時間をその第２ログに含めて前記第２ログ記憶領域に記憶し、
前記第３ログ記憶制御手段は、前記第３ログ記憶領域に前記第３ログを記憶する場合に前記第２計時手段により計時された時間をその第３ログに含めて前記第３ログ記憶領域に記憶し、
前記第２ログ取得手段は、前記周辺装置より取得した前記第２ログに含まれる時間を、前記時間差分算出手段により算出された差分に応じて補正し、その補正された時間を含む第２ログを前記第４ログ記憶領域に記憶させることを特徴とする請求項１に記載のログ収集システム。
【請求項３】
前記周辺装置は、
その周辺装置内部で使用する時間を計時する第１計時手段を備え、
前記コンピュータ装置は、
そのコンピュータ装置内部で使用する時間を計時する第２計時手段と、
前記第１計時手段によって計時された時間を取得する周辺装置時間取得手段と、
その周辺装置時間取得手段により取得された時間と、その時間を取得した場合に前記第２計時手段により計時された時間との差分を算出する時間差分算出手段とを備え、
前記第１ログ記憶制御手段は、前記第１ログ記憶領域に前記第１ログを記憶する場合に前記第１計時手段により計時された時間をその第１ログに含めて前記第１ログ記憶領域に記憶し、
前記第３ログ記憶制御手段は、前記第３ログ記憶領域に前記第３ログを記憶する場合に前記第２計時手段により計時された時間をその第３ログに含めて前記第３ログ記憶領域に記憶し、
前記第１ログ取得手段は、前記第１ログ記憶領域に記憶された第１ログを取得した上で、前記時間差分算出手段により算出された差分に応じてその取得した第１ログに含まれる時間を補正することを特徴とする請求項１に記載のログ収集システム。
【請求項４】
前記第１ログ記憶制御手段は、前記第１ログの各々を識別するための識別情報をその第１ログに含めて前記第１ログ記憶領域に記憶し、
前記第２ログ記憶制御手段は、その第１ログ記憶領域に記憶される第１ログのうち、前記周辺装置の動作に影響を及ぼす動作に関する情報である第２ログを、その第１ログに設けられた識別情報を含めて第２ログ記憶領域にも記憶し、
前記第１ログ取得手段は、前記第１ログ記憶領域に記憶された第１ログを取得した上で、その取得した第１ログに含まれる識別情報が前記第４ログ記憶領域に記憶された第２ログのいずれかに含まれる識別情報と同一である場合、その同一の識別情報を有する第２ログに含まれる補正された時間をその第１ログに含めることを特徴とする請求項２に記載のログ収集システム。
【請求項５】
前記第４ログ記憶領域は、前記周辺装置毎に設けられたサブ領域を有し、
前記第２ログ取得手段は、前記周辺装置毎に取得した第２ログを対応する周辺装置の前記サブ領域に記憶し、
前記第１ログ取得手段は、前記周辺装置毎に取得した第１ログを対応する周辺装置の前記サブ領域に記憶し、
前記ログ情報生成手段は、各々の前記サブ領域に記憶された第１ログ及び第２ログに対し、そのサブ領域が対応する周辺装置の名称を各々対応付けて前記ログ情報を生成することを特徴とする請求項１から４のいずれかに記載のログ収集システム。
【請求項６】
前記第１ログ記憶領域は、電源がオフされている間も記憶されたデータが保持される不揮発性の記憶手段に設けられることを特徴とする請求項１から５のいずれかに記載のログ収集システム。
【請求項７】
前記指示受付手段は、前記コンピュータ装置の外部よりログ収集の実行開始指示を受け付けるものであり、
前記コンピュータ装置は、前記指示受付手段により外部から前記実行開始指示が受け付けられたことを契機として、前記第１ログ取得手段によって前記第１ログ記憶領域に記憶されたログを前記周辺装置より取得し、前記ログ情報生成手段によって前記ログ情報を生成することを特徴とする請求項１から６のいずれかに記載のログ収集システム。
【請求項８】
動作に関する記録である第１ログを記憶する第１ログ記憶領域と、その第１ログ記憶領域に記憶される第１ログのうち、動作に影響を及ぼす動作に関する情報を第２ログとしても記憶する第２ログ記憶領域とを備えた１以上の周辺装置と接続され、少なくとも１つの周辺装置について、その周辺装置の動作に関するログを収集するコンピュータ装置であって、
そのコンピュータ装置が行った前記周辺装置に関わる動作に関する第３ログを第３ログ記憶領域に記憶させる第３ログ記憶制御手段と、
前記第２ログ記憶手段に記憶された第２ログを前記周辺装置より取得して第４ログ記憶領域に記憶させる処理を、所定のタイミング毎に繰り返し実行する第２ログ取得手段と、
ログ収集の実行開始指示を受け付ける指示受付手段と、
その指示受付手段により前記実行開始指示が受け付けられたことを契機として、前記第１ログ記憶領域に記憶された第１ログを前記周辺装置より取得する第１ログ取得手段と、
その第１ログ取得手段により取得された第１ログと、前記第３ログ記憶制御手段により前記第３ログ記憶領域に記憶された第３ログと、前記指示受付手段により前記実行開始指示が受付けられた際に前記第２ログ取得手段により前記第４ログ記憶領域に記憶された第２ログとを１つのファイルにまとめたログ情報を、前記指示受付手段により前記実行開始指示が受け付けられたことを契機として生成するログ情報生成手段とを備えていることを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ収集システム、及びコンピュータ装置に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）には、プリンタ、スキャナ、ファクシミリといった様々な周辺装置が接続され、ＰＣはこれらの周辺装置を制御しながら種々の処理を実行する。このＰＣに接続された周辺装置に異常が発生すると、ＰＣがその周辺装置を制御することができなくなって、ユーザが所望する処理をＰＣに実行させることができないという不具合が生ずる場合がある。この場合、不具合が生じたときのＰＣや周辺装置の動作を確認しただけでは、その不具合の原因を特定することができないことが多い。
【０００３】
そこで、近年、ＰＣが周辺装置に対して行った命令やデータの入出力などの動作に関する記録であるログを生成して記憶しておき、不具合が生じたときにハードディスクに記憶されたログを周辺装置のベンダに送付するログ収集システムが提供されている。このシステムにより、ベンダが送付されてきたログ情報からＰＣ内部の状態を解析して、不具合の原因の調査を行うことができる。しかしながら、ＰＣが生成したログのみをベンダに送付するので、周辺装置の内部状態まで解析することができず、不具合の原因の特定が難しいという問題点があった。
【０００４】
一方、特許文献１には、ＰＣがプリンタに対して印刷ジョブを発行する毎に、ＰＣは、プリンタが生成した印刷情報を受信し、その印刷情報をＰＣ自身が生成した印刷ログとマージして、１つの印刷管理ログを生成する印刷ログ管理方法が開示されている。これにより、プリンタが行った印刷に関する情報を正確に網羅できるようにしている。  
【特許文献１】特開２００５−５６０１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この特許文献１に記載の印刷ログ管理方法では、印刷ジョブという特定のジョブに関連するログしか収集しない。このため、上述したログ収集システムに対して特許文献１に記載の印刷ログ管理方法を単純に適用しても、周辺装置は特定のジョブ以外に関する情報を収集することができない。よって、周辺機器に異常が発生してＰＣが実行する処理に不具合が生じた場合、周辺装置内部で過去に発生した全ての現象を遡って解析できず、その周辺機器の異常が特定のジョブ実行時以外に発生したときには、やはり不具合の原因を特定することが難しいという問題点があった。
【０００６】
また、周辺装置において、その周辺装置で実行されるすべてのジョブに関連するログを生成し、その生成した全てのログを常時ＰＣへ送付するようにした場合、ＰＣ及び周辺装置間の通信負荷が増大するといった問題点があった。
【０００７】
本発明は上述した問題点を解決するためになされたものであり、コンピュータ装置と周辺装置との間の通信負荷の増大を抑制しつつ、コンピュータ装置により実行される処理において生じた不具合の原因を容易に特定するためのログを収集することができるログ収集システム、及びコンピュータ装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するために、請求項１に記載のログ収集システムは、コンピュータ装置とそのコンピュータ装置に接続された１以上の周辺装置とを有し、前記コンピュータ装置により、少なくとも１つの前記周辺装置について、その周辺装置の動作に関する記録であるログを収集するものであって、前記周辺装置は、その周辺装置の動作に関する第１ログを第１ログ記憶領域に記憶させる第１ログ記憶制御手段と、前記第１ログ記憶領域に記憶される第１ログのうち、前記周辺装置の動作に影響を及ぼす動作に関する情報を第２ログとして第２ログ記憶領域にも記憶させる第２ログ記憶制御手段とを備え、前記コンピュータ装置は、そのコンピュータ装置が行った前記周辺装置に関わる動作に関する第３ログを第３ログ記憶領域に記憶させる第３ログ記憶制御手段と、前記第２ログ記憶手段に記憶された第２ログを前記周辺装置より取得して第４ログ記憶領域に記憶させる処理を、所定のタイミング毎に繰り返し実行する第２ログ取得手段と、ログ収集の実行開始指示を受け付ける指示受付手段と、その指示受付手段により前記実行開始指示が受け付けられたことを契機として、前記第１ログ記憶領域に記憶された第１ログを前記周辺装置より取得する第１ログ取得手段と、その第１ログ取得手段により取得された第１ログと、前記第３ログ記憶制御手段により前記第３ログ記憶領域に記憶された第３ログと、前記指示受付手段により前記実行開始指示が受付けられた際に前記第２ログ取得手段により前記第４ログ記憶領域に記憶された第２ログとを１つのファイルにまとめたログ情報を、前記指示受付手段により前記実行開始指示が受け付けられたことを契機として生成するログ情報生成手段とを備えている。
【０００９】
請求項２に記載のログ収集システムは、請求項１に記載のログ収集システムにおいて、前記周辺装置は、その周辺装置内部で使用する時間を計時する第１計時手段を備え、前記コンピュータ装置は、そのコンピュータ装置内部で使用する時間を計時する第２計時手段と、前記第１計時手段によって計時された時間を取得する周辺装置時間取得手段と、その周辺装置時間取得手段により取得された時間と、その時間を取得した場合に前記第２計時手段により計時された時間との差分を算出する時間差分算出手段とを備え、前記第２ログ記憶制御手段は、前記第２ログ記憶領域に前記第２ログを記憶する場合に前記第１計時手段により計時された時間をその第２ログに含めて前記第２ログ記憶領域に記憶し、前記第３ログ記憶制御手段は、前記第３ログ記憶領域に前記第３ログを記憶する場合に前記第２計時手段により計時された時間をその第３ログに含めて前記第３ログ記憶領域に記憶し、前記第２ログ取得手段は、前記周辺装置より取得した前記第２ログに含まれる時間を、前記時間差分算出手段により算出された差分に応じて補正し、その補正された時間を含む第２ログを前記第４ログ記憶領域に記憶させる。
【００１０】
請求項３に記載のログ収集システムは、請求項１に記載のログ収集システムにおいて、前記周辺装置は、その周辺装置内部で使用する時間を計時する第１計時手段を備え、前記コンピュータ装置は、そのコンピュータ装置内部で使用する時間を計時する第２計時手段と、前記第１計時手段によって計時された時間を取得する周辺装置時間取得手段と、その周辺装置時間取得手段により取得された時間と、その時間を取得した場合に前記第２計時手段により計時された時間との差分を算出する時間差分算出手段とを備え、前記第１ログ記憶制御手段は、前記第１ログ記憶領域に前記第１ログを記憶する場合に前記第１計時手段により計時された時間をその第１ログに含めて前記第１ログ記憶領域に記憶し、前記第３ログ記憶制御手段は、前記第３ログ記憶領域に前記第３ログを記憶する場合に前記第２計時手段により計時された時間をその第３ログに含めて前記第３ログ記憶領域に記憶し、前記第１ログ取得手段は、前記第１ログ記憶領域に記憶された第１ログを取得した上で、前記時間差分算出手段により算出された差分に応じてその取得した第１ログに含まれる時間を補正する。
【００１１】
請求項４に記載のログ収集システムは、請求項２に記載のログ収集システムにおいて、前記第１ログ記憶制御手段は、前記第１ログの各々を識別するための識別情報をその第１ログに含めて前記第１ログ記憶領域に記憶し、前記第２ログ記憶制御手段は、その第１ログ記憶領域に記憶される第１ログのうち、前記周辺装置の動作に影響を及ぼす動作に関する情報である第２ログを、その第１ログに設けられた識別情報を含めて第２ログ記憶領域にも記憶し、前記第１ログ取得手段は、前記第１ログ記憶領域に記憶された第１ログを取得した上で、その取得した第１ログに含まれる識別情報が前記第４ログ記憶領域に記憶された第２ログのいずれかに含まれる識別情報と同一である場合、その同一の識別情報を有する第２ログに含まれる補正された時間をその第１ログに含める。
【００１２】
請求項５に記載のログ収集システムは、請求項１から４のいずれかに記載のログ収集システムにおいて、前記第４ログ記憶領域は、前記周辺装置毎に設けられたサブ領域を有し、前記第２ログ取得手段は、前記周辺装置毎に取得した第２ログを対応する周辺装置の前記サブ領域に記憶し、前記第１ログ取得手段は、前記周辺装置毎に取得した第１ログを対応する周辺装置の前記サブ領域に記憶し、前記ログ情報生成手段は、各々の前記サブ領域に記憶された第１ログ及び第２ログに対し、そのサブ領域が対応する周辺装置の名称を各々対応付けて前記ログ情報を生成する。
【００１３】
請求項６に記載のログ収集システムは、請求項１から５のいずれかに記載のログ収集システムにおいて、前記第１ログ記憶領域は、電源がオフされている間も記憶されたデータが保持される不揮発性の記憶手段に設けられる。
【００１４】
請求項７に記載のログ収集システムは、請求項１から６のいずれかに記載のログ収集システムにおいて、前記指示受付手段は、前記コンピュータ装置の外部よりログ収集の実行開始指示を受け付けるものであり、前記コンピュータ装置は、前記指示受付手段により外部から前記実行開始指示が受け付けられたことを契機として、前記第１ログ取得手段によって前記第１ログ記憶領域に記憶されたログを前記周辺装置より取得し、前記ログ情報生成手段によって前記ログ情報を生成する。
【００１５】
請求項８に記載のコンピュータ装置は、動作に関する記録である第１ログを記憶する第１ログ記憶領域と、その第１ログ記憶領域に記憶される第１ログのうち、動作に影響を及ぼす動作に関する情報を第２ログとしても記憶する第２ログ記憶領域とを備えた１以上の周辺装置と接続され、少なくとも１つの周辺装置について、その周辺装置の動作に関するログを収集するものであって、そのコンピュータ装置が行った前記周辺装置に関わる動作に関する第３ログを第３ログ記憶領域に記憶させる第３ログ記憶制御手段と、前記第２ログ記憶手段に記憶された第２ログを前記周辺装置より取得して第４ログ記憶領域に記憶させる処理を、所定のタイミング毎に繰り返し実行する第２ログ取得手段と、ログ収集の実行開始指示を受け付ける指示受付手段と、その指示受付手段により前記実行開始指示が受け付けられたことを契機として、前記第１ログ記憶領域に記憶された第１ログを前記周辺装置より取得する第１ログ取得手段と、その第１ログ取得手段により取得された第１ログと、前記第３ログ記憶制御手段により前記第３ログ記憶領域に記憶された第３ログと、前記指示受付手段により前記実行開始指示が受付けられた際に前記第２ログ取得手段により前記第４ログ記憶領域に記憶された第２ログとを１つのファイルにまとめたログ情報を、前記指示受付手段により前記実行開始指示が受け付けられたことを契機として生成するログ情報生成手段とを備えている。
【発明の効果】
【００１６】
請求項１に記載のログ収集システムによれば、ログ情報生成手段により生成されたログ情報によって、周辺装置の動作に関する第１ログとコンピュータ装置が行った周辺装置に関わる動作に関する第３ログとを確認することができるので、コンピュータ装置により実行される処理において生じた不具合の原因の特定を容易にすることができる。また、第２ログ取得手段により、第１ログに含まれるログのうち周辺装置の動作に影響を及ぼす動作に関する情報である第２ログが所定のタイミング毎に繰り返し取得されるように構成されており、ログ情報生成手段により生成されたログ情報にその第２ログが含まれるので、指示受付手段によりログ収集の実行開始指示が受け付けられた場合に、第１ログ取得手段により正常に第１ログが取得できなかった場合でも、その第２ログと第３ログとによって、不具合の原因をある程度絞り込むことができる。一方、第２ログ取得手段で所定のタイミング毎に繰り返し取得される第２ログのデータ量は、指示受付手段によりログ収集の実行開始指示が受け付けられたことを契機として第１ログ取得手段で取得される第１ログのデータ量よりも小さいので、第１ログを所定のタイミング毎に繰り返し取得する場合よりもコンピュータ装置と周辺装置との間の通信負荷を抑制することができる。よって、コンピュータ装置と周辺装置との間の通信負荷の増大を抑制しつつ、コンピュータ装置により実行される処理において生じた不具合の原因を容易に特定するためのログを収集することができるという効果がある。
【００１７】
請求項２に記載のログ収集システムによれば、請求項１に記載のログ収集システムの奏する効果に加えて、第１計時手段によって計時された周辺装置内部で使用される時間と第２計時手段によって計時されたコンピュータ装置内部で使用される時間との差分が時間差分算出手段によって算出され、第２ログに含まれる時間がその差分に応じて第２ログ取得手段によって補正されるので、第２ログに含まれる時間を第２計時手段により計時される時間軸に合わせることができる。よって、第２ログと第３ログとの間で、各々のログが発生した時間的前後関係を正確に把握することができ、不具合の原因解析にかかる負担を軽減することができるという効果がある。
【００１８】
請求項３に記載のログ収集システムによれば、請求項１に記載のログ収集システムの奏する効果に加えて、第１計時手段によって計時された周辺装置内部で使用される時間と第２計時手段によって計時されたコンピュータ装置内部で使用される時間との差分が時間差分算出手段によって算出され、第１ログに含まれる時間がその差分に応じて第１ログ取得手段によって補正されるので、第１ログに含まれる時間を第２計時手段により計時される時間軸に合わせることができる。よって、第１ログと第３ログとの間で、各々のログが発生した時間的前後関係を正しく把握することができ、不具合の原因解析にかかる負担を軽減することができるという効果がある。
【００１９】
請求項４に記載のログ収集システムによれば、請求項２に記載のログ収集システムの奏する効果に加えて、第１ログ記録制御手段と第２ログ記録制御手段とによって、同一の第１ログと第２ログとには、同一の識別情報が含められ、第１ログ取得手段によって、識別情報により第２ログと同一と判断された第１ログに、その第２ログに含まれる第２ログ取得手段によって補正された時間が含められる。これにより、第１ログの一部と第３ログとの間で、各々のログが発生した時間的前後関係を把握することができ、不具合の原因解析にかかる負担を更に軽減することができるという効果がある。
【００２０】
請求項５に記載のログ収集システムによれば、請求項１から４のいずれかに記載のログ収集システムの奏する効果に加えて、第１ログ及び第２ログに、それらが取得された周辺装置の名称がログ情報生成手段によって対応づけられるので、ログ情報を参照するときに、第１ログ及び第２ログを生成した周辺装置を容易に識別することができるという効果がある。
【００２１】
請求項６に記載のログ収集システムによれば、請求項１から５のいずれかに記載のログ収集システムの奏する効果に加えて、第１ログが周辺装置の不揮発性の記憶手段に記憶されるので、周辺装置の電源がオフされても、第１ログを周辺装置内部に保存しておくことができる。よって、不具合が発生した後にユーザが周辺装置の電源をオフした場合があっても、再び周辺装置の電源をオンすれば、第１ログ取得手段によって第１ログを周辺装置より取得することができるという効果がある。
【００２２】
請求項７に記載のログ収集システムによれば、請求項１から６のいずれかに記載のログ収集システムの奏する効果に加えて、外部からの指示という簡単な手順で、第１ログを周辺装置から取得してログ情報を生成することができるという効果がある。
【００２３】
請求項８に記載のコンピュータ装置によれば、請求項１に記載のログ収集システムと同様な効果を奏することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の一実施形態におけるログ収集システム１の電気的構成を示すブロック図である。
【００２５】
図１に示すように、ログ収集システム１は、インクジェットプリンタ１０ａ（以下、「プリンタ１０ａ」と称する。）と、スキャナ１０ｂと、ファクシミリ１０ｃと、パーソナルコンピュータ１１（以下、「ＰＣ１１」と称する。）とを有し、プリンタ１０ａ、スキャナ１０ｂ、及びファクシミリ１０ｃは、各々通信ケーブル４０ａ、４０ｂ、４０ｃを介してＰＣ１１と接続されている。このログ収集システム１は、プリンタ１０ａ、スキャナ１０ｂ、及びファクシミリ１０ｃとＰＣ１１との間の通信負荷の増大を抑制しつつ、ＰＣ１１により実行される処理において生じた不具合の原因を容易に特定するためのログを収集することができるシステムである。
【００２６】
プリンタ１０ａは、インクジェットヘッド３を有するインクジェットプリンタであり、ＰＣ１１から出力される指示に従って、インクジェットヘッド３に穿設されているノズルから記録媒体に向けてインク滴を吐出して印刷を行う周辺装置である。このプリンタ１０ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２と、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２３と、ゲートアレイ（Ｇ／Ａ）２４と、ヘッド用ドライバ２５とが備えられている。そして、ＣＰＵ２０と、ＲＯＭ２１、ＲＡＭ２２、ＥＥＰＲＯＭ２３とゲートアレイ２４の各々は、バスライン２６を介して接続されている。また、ヘッド用ドライバ２５はゲートアレイ２４に接続されている。
【００２７】
ＣＰＵ２０は、ＲＯＭ２１に予め記憶されている制御プログラムに従って、プリンタ１０ａの動作を制御する演算装置であり、例えば、吐出タイミング信号およびリセット信号を生成し、各信号を後述のゲートアレイ２４へ転送する。
【００２８】
また、このＣＰＵ２０には、ユーザが印字の指示などを行うための操作パネル２７、記録媒体を搬送する搬送モータ（ＬＦモータ）２８を動作させるための搬送モータ駆動回路２９、記録媒体の先端を検出するペーパーセンサ３０が接続されており、各デバイスの動作はＣＰＵ２０により制御されている。
【００２９】
また、ＣＰＵ２０には、計時回路３１が接続されている。この計時回路３１は、現在の時間を刻む内部時計を有し、現在の時間や、計時を開始した時間と現在の時間とを比較して算出した所要時間をＣＰＵ２０へ通知する既知の回路である。
【００３０】
ＲＯＭ２１は、書換え不可能な不揮発性のメモリであり、ＣＰＵ２０により実行されるログ作成プログラム２１ａや簡易ログ送信プログラム２１ｂといった各種の制御プログラム及び固定値データが記憶されている。
【００３１】
ログ作成プログラム２１ａは、プリンタ１０ａの動作に関するログを生成し、生成したすべてのログを詳細ログとして、後述する詳細ログ領域２３ａに記憶する処理を行うプログラムである。また、このプログラムは、詳細ログのうちプリンタ１０ａの動作に影響を及ぼすことを示すログを簡易ログとして、後述する簡易ログ領域２２ａに記憶する処理を行う。
【００３２】
プリンタ１０ａの動作に関するログは、例えば、ＰＣ１１との制御信号やデータの送受信に関する情報や、ＣＰＵ２０がプリンタ１０ａの各部に出力した制御信号に関する情報、その各部での動作結果（例えば、成功／失敗など）や異常発生に関する情報などを記録したものである。ログ作成プログラム２１ａは、このようなログとして記録すべき事象が発生したときにＣＰＵ２０によって起動され、実行される。
【００３３】
ここで、図２（ａ）及び（ｂ）を参照して、ログ作成プログラム２１ａによって詳細ログ領域２３ａに記憶される詳細ログ６１と、簡易ログ領域２２ａに記憶される簡易ログ６２の内容について説明する。まず、図２（ａ）は、詳細ログ領域２３ａに記憶される詳細ログ６１の内容を模式的に示した模式図である。
【００３４】
図２（ａ）に示すように、詳細ログ６１には時間６１ａ、識別番号６１ｂ、種類６１ｃ、及び内容６１ｄが記載されている。時間６１ａは、ログ作成プログラム２１ａによってログが生成されたときに計時回路３１から取得した時間である。識別番号６１ｂは、ログが生成される度に「１」ずつインクリメントされるログの通し番号である。この識別番号６１ｂは、ＰＣ１１やログの参照者が、詳細ログ６１と簡易ログ領域２２ａに記憶された簡易ログ６２との対応付けを行うために用いられる。
【００３５】
種類６１ｃは、そのログに示される内容の種類を示すものであり、ログが一般的な動作に関する情報であるインフォメーションログであることを示す「ＩＮＦ」、ログが将来的に問題となる可能性がある動作に関する情報である警告ログであることを示す「ＷＲＮ」、及び、ログが重大な影響を及ぼす動作に関する情報であるエラーログであることを示す「ＥＲＲ」の３つによって示される。内容６１ｄは、ログの具体的な内容を示す文字列である。
【００３６】
詳細ログ６１は、上述した通り、プリンタの動作に関する全てのログであり、インフォメーションログ、警告ログ、及びエラーログの全てのログによって構成される。従って、この詳細ログ６１を用いれば、プリンタ１０ａ内部で発生した異常を容易に特定することができる。
【００３７】
一方、図２（ｂ）は、簡易ログ領域２２ａに記憶される簡易ログ６２の内容を模式的に示した模式図である。図２（ｂ）に示すように、簡易ログ６２は、詳細ログ６１を構成するログのうち、プリンタ１０ａの動作に影響を及ぼすことを示す警告ログとエラーログのみによって構成される。よって、簡易ログ６２を用いれば、警告ログとエラーログとによって、プリンタ１０ａ内部で発生した異常をある程度絞り込むことができる。また、簡易ログ６２は詳細ログ６１よりもデータ量が少ない、という利点がある。
【００３８】
図１に戻り、説明を続ける。簡易ログ送信プログラム２１ｂは、簡易ログ領域２２ａに記憶されている簡易ログ６２をＰＣ１１へ送付するプログラムで、プリンタ１０ａがＰＣ１１から送信された簡易ログ要求コマンドを受信した場合にＣＰＵ２０によって起動され、実行される。このプログラムでは、簡易ログ６２を送信するときに計時回路３１から現在の時間を取得し、その現在の時間と簡易ログ６２とを送付する。なお、簡易ログ領域２２ａに簡易ログ６２が存在しない場合は、現在の時間及び簡易ログ６２の代わりに、ヌル（Ｎｕｌｌ）データを送信する。
【００３９】
ＲＡＭ２２は、書換え可能な揮発性のメモリであり、各種のデータ等が一時的に記憶される。このＲＡＭ２２には、簡易ログ領域２２ａが設けられている。簡易ログ領域２２ａは、ログ作成プログラム２１ａで生成された簡易ログ６２を記憶する領域である。この簡易ログ領域２２ａは、ＰＣ１１から直接アクセスすることができない領域となっており、ＰＣ１１は簡易ログ要求コマンドによって簡易ログ領域２２ａに記憶された簡易ログ６２を取得することができる。
【００４０】
ＥＥＰＲＯＭ２３は、書換え可能な不揮発性のメモリであり、ＰＣ１１から直接アクセスすることが可能なリムーバブル記憶領域があるデバイスとして機能する。このＥＥＰＲＯＭ２３には、詳細ログ領域２３ａと識別番号カウンタ２３ｂとが設けられている。詳細ログ領域２３ａは、ログ作成プログラム２１ａで生成された詳細ログ６１を記憶する領域である。この詳細ログ領域２３ａには、ログ作成プログラム２１ａによって生成された順番、即ち、識別番号６１ｂの昇順に、詳細ログ６１が記憶される。この詳細ログ領域２３ａは、リムーバブル記憶領域となっており、ＰＣ１１は詳細ログ領域２３ａに記憶されている詳細ログ６１に直接アクセスし、その内容をコピーすることができる。また、詳細ログ領域２３ａがＥＥＰＲＯＭ２３に設けられていることにより、不具合が発生したときにユーザがプリンタ１０ａの電源をオフしても、詳細ログ領域２３ａに記憶された詳細ログは保存され続ける。よって、再びプリンタ１０ａの電源をオンにすれば、ＰＣ１１は詳細ログ記憶領域２３ａに記憶された詳細ログを取得することができる。
【００４１】
識別番号カウンタ２３ｂは、図２（ａ）に示した識別番号６１を生成するためのカウンタである。このカウンタは、ログ生成プログラム２１ａがログを生成するときに参照され、参照される度にログ生成プログラム２１ａによって「１」ずつインクリメントされる。尚、このカウンタは出荷時に「０」に設定されている。
【００４２】
ゲートアレイ２４は、記録媒体に印字する画像データを記憶するイメージメモリ３２が接続されており、ＣＰＵ２０から転送される印字タイミング信号に従い、イメージメモリ３２に記憶されている画像データに基づいて、その画像データを記録媒体に印字するための印字データ（駆動信号）と、その印字データと同期する転送クロックと、ラッチ信号と、基本印字波形信号を生成するためのパラメータ信号と、一定周期で出力される噴射タイミング信号とを出力し、それら各信号を、ヘッド用ドライバ２５に出力する。
【００４３】
また、ゲートアレイ２４は、通信配線４０ａを介してＰＣ１１と接続するためのインターフェイス３３が接続されている。そして、ゲートアレイ２４は、インターフェイス３３を介してＰＣ１１から転送されてくる画像データをイメージメモリ３２に記憶させる。
【００４４】
ヘッド用ドライバ２５は、ゲートアレイ２４から出力される信号に応じて、その信号に合った波形の駆動パルスを各ノズルに対応した駆動素子に印加する駆動回路である。この駆動パルスにより駆動素子が作動して、各ノズルからインクが吐出される。
【００４５】
続いて、スキャナ１０ｂは、スキャナ１０ｂに設けられた原稿読取台（図示せず）にセットされた原稿から画像を読み取り、画像データを生成してＰＣ１１に送信する周辺装置である。また、ファクシミリ１０ｃは、ＰＣ１１より受信した画像データを、電話回線網（図示せず）を介して他のファクシミリに送信し、また他のファクシミリから受信した画像データをＰＣ１１へ送信する周辺装置である。尚、スキャナ１０ｂ及びファクシミリ１０ｃの主要な機能を実現する構成は既知のものと同じであり、また、スキャナ１０ｂ及びファクシミリ１０ｃの各々において、詳細ログ及び簡易ログを生成し記憶する構成、及び簡易ログをＰＣ１１へ送信する構成は、プリンタ１０ａの構成と同一であるため、スキャナ１０ｂ及びファクシミリ１０ｃの電気的構成については、その図示と説明を省略する。
【００４６】
一方、ＰＣ１１は、周辺装置であるプリンタ１０ａ、スキャナ１０ｂ、ファクシミリ１０ｃと協動しながら、ユーザが所望する処理を実行するコンピュータである。このＰＣ１１は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、ハードディスク４４、液晶ディスプレイ４６（以下、「ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）４６」と称する。）、キーボード４７、及びインターフェイス４８を備えており、ハードディスク４４、ＬＣＤ４６、キーボード４７、及びインターフェイス４８は、入出力ポート４９を介して接続されている。また、ＣＰＵ４１、ＲＡＭ４２、ＲＯＭ４３、及び入出力ポート４９はバスライン５０を介して接続されている。
【００４７】
ＣＰＵ４１は、ＲＯＭ４２やハードディスク４４に記憶されているプログラムに従って、ＰＣ１１の動作を制御する演算装置である。このＣＰＵ４１には、計時回路４５が接続されている。この計時回路４５は、計時回路３１と同様の機能を有する既知の回路である。
【００４８】
ＲＯＭ４２は、書換え不可能な不揮発性のメモリであり、ＣＰＵ４１により実行される各種の制御プログラムや、その他、固定値データが記憶されている。ＲＡＭ４３は、書換え可能な揮発性のメモリであり、取得中フラグ４３ａといった各種のデータ等が一時的に記憶されている。
【００４９】
取得中フラグ４３ａは、その値が「１」の場合に、デバイス監視プログラム４４ａがプリンタ１０ａ、スキャナ１０ｂ、及びファクシミリ１０ｃからの簡易ログの取得処理（以下、「簡易ログ取得処理」と称する。）を行っていることを示すフラグである。デバイス監視プログラム４４ａがその簡易ログ取得処理を開始すると取得中フラグ４３ａを「１」に設定し、簡易ログ取得処理を終了すると取得中フラグ４３ａを「０」に設定する。尚、ＰＣ１１の電源がオンされたとき、この取得中フラグ４３ａは初期値として「０」が設定される。
【００５０】
この取得中フラグ４３ａは、後述するログ収集プログラム４４ｂで実行される処理で参照され、デバイス監視プログラム４４ａによる簡易ログ取得処理と、ログ収集プログラム４４ｂによる簡易ログ取得処理とが重複して実行されることを防止するために用いられる。
【００５１】
ハードディスク４４は、書換え可能な不揮発性のメモリであり、デバイス監視プログラム４４ａ、ログ収集プログラム４４ｂ、アプリケーションプログラム４４ｃといったＣＰＵ４１で実行されるプログラムや、レジストリ４４ｄが記憶されている。また、ハードディスク４４にはログフォルダ４４ｅが設けられている。
【００５２】
デバイス監視プログラム４４ａは、一定の時間間隔で、ＰＣ１１に接続された周辺機器（プリンタ１０a、スキャナ１０ｂ、ファクシミリ１０ｃ）の全てから、簡易ログを取得する処理、即ち、簡易ログ取得処理を実行するプログラムである。また、上述した通り、簡易ログ取得処理の開始及び終了の時点で、取得中フラグ４３ａの値を「１」又は「０」に設定する。このデバイス監視プログラム４４ａは、ＰＣ１１の電源がオンされると起動され、電源がオフされるか、ユーザからプログラムの終了指示がなされるまでＣＰＵ４１によって実行され続ける。
【００５３】
簡易ログ取得処理では、全ての周辺装置に対して簡易ログ要求コマンドを送信し、各周辺装置からそれぞれ簡易ログを取得する。このとき、簡易ログと合わせて送信されてきた各周辺装置の現在の時間と、ＣＰＵ４１が計時回路４５より取得したＰＣ１１の現在の時間との差分から、簡易ログに記載された時間を補正し修正する処理も行い、その時間をＰＣ１１内部で使用される時間軸に合わせる。そして、時間が修正された各周辺装置の簡易ログを、後述するログフォルダ４４ｅ内の周辺装置毎に設けられたサブフォルダにそれぞれ保存する。
【００５４】
ログ収集プログラム４４ｂは、後述するログフォルダ４４ｅに保存されているＰＣ１１により生成されたＰＣログや各周辺装置によって生成された簡易ログ及び詳細ログ、及び後述するレジストリ４４ｄに格納されているレジストリのうち必要なレジストリの値をまとめて、１つの収集ログファイルを生成するプログラムで、ユーザからの指示によって起動され、実行される。また、このプログラムは、収集ログファイルの生成に先立って、簡易ログ取得処理と、詳細ログ取得処理を実行する。これにより、各周辺装置から最新の簡易ログ及び詳細ログを取得する。
【００５５】
尚、取得中フラグ４３ａが「１」の場合、デバイス監視プログラム４４ａによって簡易ログ取得処理が実行中であるため、ログ収集プログラム４４ｂは簡易ログ取得処理を行わず、デバイス監視プログラム４４ａによる簡易ログ取得処理が完了するまで待機する。これにより、デバイス監視プログラム４４ａとログ収集プログラム４４ｂとにより、簡易ログ取得処理が重複実行されるのを防止することができる。
【００５６】
また、詳細ログ取得処理では、全ての周辺装置から詳細ログをコピーするとともに、各詳細ログに記載された時間を修正する処理（以下、「詳細ログ時間修正処理」と称する。）を行う。そして、詳細ログ時間修正処理がなされた各周辺装置の詳細ログを、ログフォルダ４４ｅ内の周辺装置毎に設けられたサブフォルダにそれぞれ保存する。
【００５７】
詳細ログ時間修正処理では、詳細ログをコピーした周辺装置から簡易ログが取得されていた場合、その簡易ログに示された識別番号と同じ識別番号を持つ詳細ログに記載された時間を、同じ識別番号の簡易ログに記載された時間に置換する。これにより、詳細ログを構成するログのうち、簡易ログにも記載されている警告ログ及びエラーログについて、それらのログに記載された時間をＰＣ１１内部で使用される時間軸に合わせることができる。また、詳細ログには、生成された順にインクリメントされる識別番号が記載されているので、警告ログ及びエラーログに対して置換された時間をもとに、インフォメーションログに対してもＰＣ１１内部で使用される時間軸でのおおよその生成時間を類推することができる。
【００５８】
一方、詳細ログ時間修正処理において、詳細ログをコピーした周辺装置から簡易ログが取得されていなかった場合は、詳細ログに記載された時間が全て各々の周辺装置内部で使用されている時間であることを示すマーカを、詳細ログに追加する。このマーカによって、ログの参照者が詳細ログに記載されている時間が周辺装置内部で使用されている時間であることを認識することができる。
【００５９】
アプリケーションプログラム４４ｃは、ある特定の処理をＣＰＵ４１により実行するためのプログラムである。このアプリケーションプログラム４４ｃにより、各周辺装置に対して制御信号やデータの送受信が行われると、アプリケーションプログラム４４ｃ（即ち、ＰＣ１１）はログを生成する。このアプリケーションプログラム４４ｃによって生成されるログ（ＰＣログ）は、各周辺装置との制御信号やデータの送受信に関する情報、各周辺装置での動作結果（例えば、成功／失敗など）や動作異常に関する情報などを記録する。各々のＰＣログには、アプリケーションプログラム４４ｃによってそのログが生成されたときに計時回路４５から取得された時間と、そのログの内容を示す種類（インフォメーションログ／警告ログ／エラーログ）と、ログの具体的な内容を示す文字列とが記載される。そして、アプリケーションプログラム４４ｃは生成したＰＣログを、ログフォルダ４４ｅ内に周辺装置毎に用意された後述するＰＣログファイルに追加する。
【００６０】
レジストリ４４ｄは、ＰＣ１１のＯＳ（Ｏｐｅｒｅｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションプログラム４４ｃの設定データが記録されているデータベースである。このレジストリには、ＰＣ１１に接続された周辺装置の名称やベンダ名、ポート番号、ＩＰアドレス、及びノード名などが記載されている。デバイス監視プログラム４４ａやログ収集プログラム４４ｂは、このレジストリ４４ｄに記載された情報から、簡易ログや詳細ログを収集すべき周辺装置の情報を得ることができる。
【００６１】
ログフォルダ４４ｅは、アプリケーションプログラム４４ｃで生成されたＰＣログや、デバイス監視プログラム４４ａ及びログ収集プログラム４４ｂにより各周辺装置から取得された簡易ログ及び詳細ログを保存するフォルダである。ここで、図２（ｃ）を参照して、ログフォルダ４４ｅのフォルダ構成について説明する。図２（ｃ）は、ログフォルダ「ｌｏｇ」（以下、「「ｌｏｇ」フォルダ」と称する。）のフォルダ構成を模式的に示した模式図である。
【００６２】
図２（ｃ）に示すように、「ｌｏｇ」フォルダには、ＰＣログを保存するＰＣログ用フォルダ「ＰＣ＿ｌｏｇ」（以下、「「ＰＣ＿ｌｏｇ」フォルダ」と称する。）と、各周辺装置が生成した簡易ログ及び詳細ログを保存する周辺装置ログ用フォルダ「Ｄｅｖｉｃｅ＿ｌｏｇ」（以下、「「Ｄｅｖｉｄｅ＿ｌｏｇ」フォルダ」と称する。）とが設けられている。更に、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダには、周辺装置毎に設けられたサブフォルダが設けられている。そして、各サブフォルダの名前には、対応する周辺装置の名称（若しくは商品番号）が付されている。即ち、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダには、プリンタ１０ａの名称が「Ｐｒｉｎｔｅｒ」の場合、それに対応するサブフォルダとして「Ｐｒｉｎｔｅｒ」フォルダが設けられ、スキャナ１０ｂの名称が「Ｓｃｎａｎｎｅｒ」の場合、それに対応するサブフォルダとして「Ｓｃａｎｎｅｒ」フォルダが設けられ、ファクシミリ１０ｃの名称が「Ｆａｘ」の場合、それに対応するサブフォルダとして「Ｆａｘ」フォルダが設けられている。
【００６３】
また、「ＰＣ＿ｌｏｇ」フォルダには、周辺装置毎に用意されたＰＣログファイルが格納される。即ち、アプリケーションプログラム４４ｃがプリンタ１０ａに対する処理によって生成したＰＣログを保存する「Ｐｉｎｔｅｒ．ｌｏｇ」ファイルと、スキャナ１０ｂに対する処理によって生成したＰＣログを保存する「Ｓｃａｎｎｅｒ．ｌｏｇ」ファイルと、ファクシミリ１０ｃに対する処理によって生成したＰＣログを保存する「Ｆａｘ．ｌｏｇ」ファイルとが、「ＰＣ＿ｌｏｇ」フォルダに格納されている。また、「Ｐｒｉｎｔｅｒ」フォルダ、「Ｓｎａｎｎｅｒ」フォルダ、及び「Ｆａｘ」フォルダには、それぞれ、対応する周辺装置から取得した簡易ログを保存する簡易ログファイル「ｅａｓｙ．ｌｏｇ」と、対応する周辺装置からコピーした詳細ログを保存する詳細ログファイル「Ｄｅｔａｉｌ．ｌｏｇ」とが格納されるようになっている。
【００６４】
この「ｌｏｇ」フォルダは、ログ収集プログラム４４ｂによって、フォルダ構成を保持したまま、必要なレジストリ情報とともに、１つの収集ログファイルに圧縮・暗号化される。
【００６５】
次に、図２（ｄ）及び（ｅ）を参照して、ログ収集システム１の通常時とログ収集時の動作の流れについて説明する。図２（ｄ）は、ログ収集システム１の通常時における動作の流れを示すシーケンスチャートであり、図２（ｅ）は、ログ収集システム１のログ収集時における動作の流れを示すシーケンスチャートである。ここで、ログ収集システム１の通常時とは、ＰＣ１１及びプリンタ１０ａの電源がオンされ、一般的な処理がなされているときであり、ログ収集システム１のログ収集時とは、ＰＣ１１において、ログ収集プログラム４４ｂが起動され、実行されるときである。なお、図２（ｄ）及び（ｅ）には、周辺装置としてプリンタ１０ａのみを示して説明を行うが、スキャナ１０ｂ及びファクリミリ１０ｃにおいても同様の動作を行うので、その図示と説明を省略する。
【００６６】
まず、通常時では、図２（ｄ）に示すように、ＰＣ１１において、アプリケーションプログラム４４ｃが各周辺装置に対して制御信号やデータの送受信を行うと、そのアプリケーションプログラム４４ｃはＰＣログを生成し、ログフォルダ４４ｅ内に周辺装置毎に用意されたＰＣログファイルにそのＰＣログを追加する（１）。また、それと並行して、プリンタ１０ａでは、ログ作成プログラム２１ａがプリンタ１０ａの動作に関するログを生成し、生成したすべてのログを詳細ログとして詳細ログ領域２３ａに記憶する（２）。また、詳細ログのうち警告ログとエラーログとを簡易ログとして、簡易ログ領域２２ａに記憶する。
【００６７】
一方、ＰＣ１１のデバイス監視プログラム４４ａは、一定の時間間隔で、プリンタ１０aに対して簡易ログ要求コマンドを送信する（４）。プリンタ１０ａの簡易ログ送信プログラム２１ｂは、ＰＣ１１から簡易ログ要求コマンドを受信すると、簡易ログ領域２２ａから簡易ログを読み出す（５）とともに、計時回路３１からプリンタ１０ａの現在の時間を取得し（６）、簡易ログとその現在の時間とをＰＣ１１へ送信する（７）。
【００６８】
そして、ＰＣ１１のデバイス監視プログラム４４ａは、プリンタ１０ａから簡易ログとプリンタ１０ａの現在の時間とを受信すると、簡易ログに記載された時間をＰＣ１１内部で使用される時間軸に合わせる修正を行い、時間修正後の簡易ログをログフォルダ４４ｅ内の周辺装置毎に設けられたサブフォルダに保持する（８）。
【００６９】
このように、ログ収集システム１の通常時には、アプリケーションプログラム４４ｃで生成されたログと、プリンタ１０ａで生成された簡易ログとが、ログフォルダ４４ｅに保存される。
【００７０】
一方、ログ収集時では、図２（ｅ）に示すように、まず、ログ収集プログラム４４ｂが取得中フラグ４３ａの値を確認する（１１）。そして、取得中フラグ４３ａが「１」の場合、デバイス監視プログラムが簡易ログ取得処理を実行中であるので、ログ収集プログラム４４ｂは簡易ログ取得処理を行わず、デバイス監視プログラム４４ａによる簡易ログ取得処理が完了するまで待機し、簡易ログ取得処理が完了すると、（１７）の処理から行う。
【００７１】
また、取得中フラグ４３ａが「０」の場合、ログ収集プログラム４４ｂはプリンタ１０ａに対し簡易ログ要求コマンドを送信する（１２）。そして、ＰＣ１０aの簡易ログ送信プログラム２１ｂが簡易ログ要求コマンドを受信すると、図２（ｄ）で示した通常時の（５）〜（８）と同様の動作を、それぞれ（１３）〜（１６）で行い、時間が修正された最新の簡易ログをログフォルダ４４ｅ内の周辺装置毎に設けられたサブフォルダに保持する。
【００７２】
次に、ログ収集プログラム４４ｂは、プリンタ１０ａの詳細ログ領域２３ａから詳細ログをコピーし（１７）、詳細ログのうち警告ログ及びエラーログに記載された時間をＰＣ内部で使用される時間軸に修正した上で、ログフォルダ４４ｅに保存する（１８）。これにより、ログフォルダ４４eには、ＰＣ１１で生成されたログと、プリンタ１０ａで生成された簡易ログ及び詳細ログが格納される。そして、ログ収集プログラム４４ｂは、これらのログが格納されたログフォルダ４４ｅの内容を、フォルダ構成を保持したまま１つの収集ログファイルに圧縮・暗号化して出力する（２０）。ユーザやベンダは、この収集ログファイルを解析することにより、ＰＣ１１により実行される処理において生じた不具合の原因の特定を容易にすることができる。
【００７３】
次に、図３を参照して、プリンタ１０ａで実行されるログ作成処理について説明する。図３は、そのログ作成処理を示すフローチャートである。この処理は、プリンタ１０ａにおいてログとして記録すべき事象が発生したときに、ＣＰＵ２０が上述したログ作成プログラム２１ａを起動することによって実行される。
【００７４】
この処理では、まず、識別番号カウンタ２３ｂから識別番号の値を取得する（Ｓ１０１）。次に、Ｓ１０１で取得した識別番号の値と、プリンタ１０ａで発生した事象の内容から、図２（ａ）に示すような、識別番号６１ｂ、種類６１ｃ、及び内容６１ｄを示したログ文字列を生成する（Ｓ１０２）。続いて、計時回路３１から現在の時間を取得し、Ｓ１０２で生成したログ文字列の先頭に時間６１ａを追加する（Ｓ１０３）。そして、このＳ１０３で得られたログ文字列を詳細ログ６１として、詳細ログ領域２３ａに追加、記憶する（Ｓ１０４）。これにより、プリンタ１０ａで発生した事象が詳細ログ領域２３ａに記憶される。
【００７５】
次に、識別カウンタ２３ｂの値が「１」だけインクリメントされる（Ｓ１０５）。これによって、次回ログ作成処理が実行されたときに生成される詳細ログ６１に記載される識別番号６１ｂが、「１」だけインクリメントされた値になる。従って、この識別番号６１ｂによって各詳細ログを識別することが可能となる。
【００７６】
次に、Ｓ１０３で得られたログ文字列の種類６１ｃが、警告ログ「ＷＲＮ」又はエラーログ「ＥＲＲ」であるかを確認する（Ｓ１０６）。そして、警告ログ「ＷＲＮ」又はエラーログ「ＥＲＲ」でない場合（Ｓ１０６：Ｎｏ）、この処理を終了する。一方、警告ログ「ＷＲＮ」又はエラーログ「ＥＲＲ」である場合（Ｓ１０６：Ｙｅｓ）、Ｓ１０７の処理へ移行する。
【００７７】
Ｓ１０７からＳ１１０の処理は、Ｓ１０３で得られたログ文字列を簡易ログ領域２２ａに記憶するための処理である。まず、Ｓ１０７では、簡易ログ領域２２ａの空き容量を取得する。そして、Ｓ１０７で取得した空き容量が、Ｓ１０３で得られたログ文字列のデータ量より大きいかを確認する（Ｓ１０８）。このとき、空き容量がログ文字列のデータ量以下の場合（Ｓ１０８：Ｎｏ）、簡易ログ領域２２ａに記憶された最も古い簡易ログ６２を削除し（Ｓ１０９）、Ｓ１０７の処理に戻る。そして、簡易ログ領域２２ａの空き容量がログ文字列のデータ量以下の間は、Ｓ１０７からＳ１０９の処理を繰り返し実行する。これにより、簡易ログ領域２２ａにＳ１０３で得られたログ文字列を記憶するための記憶領域が確保される。
【００７８】
一方、Ｓ１０８において、空き容量がログ文字列のデータ量より大きいと判断された場合（Ｓ１０８：Ｙｅｓ）、Ｓ１０３で得られたログ文字列を簡易ログ６２として、簡易ログ領域２２ａに追加、記憶し（Ｓ１１０）、この処理を終了する。これにより、プリンタ１０ａで発生した事象が、将来的問題となる可能性があるものであるか、重大な影響を及ぼすものである場合、そのログが簡易ログ６２として簡易ログ領域２２ａに記憶される。すなわち、詳細ログ６１のうち、種類６１ｃが「ＷＲＮ」又は「ＥＲＲ」のログのみが、簡易ログ６２として記憶される。また、この処理では、詳細ログ６１と簡易ログ６２とで、Ｓ１０３で得られた同一のログ文字列を使用するので、同一の事象で生成したログについては、詳細ログ６１及び簡易ログ６２とも、同一の識別番号が記載される。よって、この識別番号によって、詳細ログ６１と簡易ログ６２との対応付けを行うことができる。
【００７９】
次に、図４を参照して、プリンタ１０ａで実行される簡易ログ送信処理について説明する。図４は、その簡易ログ送信処理を示すフローチャートである。この処理は、プリンタ１０ａがＰＣ１１から送信された簡易ログ要求コマンドを受信した場合に、ＣＰＵ２０が上述した簡易ログ送信プログラム２１ｂを起動することによって実行される。
【００８０】
この処理では、まず、簡易ログ領域２２ａに簡易ログが存在するかを確認する（Ｓ１５０）。そして、簡易ログが存在する場合（Ｓ１５０：Ｙｅｓ）、計時回路３１からプリンタ１０ａの現在の時間を取得する（Ｓ１５１）。そして、Ｓ１５１で取得した現在の時間と、簡易ログ領域２２ａに記憶された簡易ログとをＰＣ１１に送信して（Ｓ１５２）、この処理を終了する。このように、現在の時間を簡易ログと合わせてＰＣ１1へ送信することにより、ＰＣ１１では、上述した簡易ログ取得処理によって、簡易ログに記載された時間をＰＣ１１内部で使用される時間に合わせることが可能となる。
【００８１】
一方、Ｓ１５０において、簡易ログが存在しないと判断した場合（Ｓ１５０；Ｎｏ）、ヌルデータ「Ｎｕｌｌ」（以下、「「Ｎｕｌｌ」データ」と称する。）をＰＣ１１に送信し（Ｓ１５３）、この処理を終了する。これにより、ＰＣ１１では、プリンタ１０ａに簡易ログが存在しないことを判断することが可能となる。
【００８２】
次に、図５を参照して、ＰＣ１１で実行されるデバイス監視処理について説明する。図５は、そのデバイス監視処理を示すフローチャートである。この処理は、ＰＣ１１の電源がオンされたときに、ＣＰＵ４１が上述したデバイス監視プログラム４４ａを起動することによって実行される。
【００８３】
この処理では、まず、レジストリ４４ｄに記載されている周辺装置のデバイス名やベンダ名から、ＰＣ１１によって監視する周辺装置を抽出する（Ｓ２０１）。ＰＣ１１は、ここで抽出した周辺装置から、各周辺装置で生成された簡易ログや詳細ログを取得する。また、抽出された各周辺装置のデバイス名、ポート番号、ＩＰアドレス及びノード名等の情報も併せてレジストリ４４ｄから取得し、ＲＡＭ４２に保持される。このとき、ＲＡＭ４２に保持する各周辺装置に対して、「０」から始まる通し番号を対応付ける。後述する簡易ログ取得処理や詳細ログ取得処理は、この通し番号順に各周辺装置から簡易ログ及び詳細ログを取得する。
【００８４】
続いて、抽出した周辺装置の数Ｎをカウントして、ＲＡＭ４２に保持する（Ｓ２０２）。この周辺装置の数Ｎは、簡易ログ取得処理や詳細ログ取得処理によって、監視対象の全ての周辺装置から簡易ログや詳細ログを取得する際に使用する。
【００８５】
次に、計時回路４５によってタイムカウントを開始し（Ｓ２０３）、計時回路４５が所定の時間をカウントしてタイムカウントが終了したかを確認する（Ｓ２０４）。そして、タイムカウントが終了していない場合（Ｓ２０４：Ｎｏ）、Ｓ２０４の処理を繰り返し実行し、タイムカウントが終了した場合（Ｓ２０４：Ｙｅｓ）、Ｓ２０５の処理へ移行する。これにより、Ｓ２０５の処理の前に、計時回路４５でカウントした所定の時間だけ、処理の待ち時間を発生させることができる。そして、簡易ログ取得処理を一定の時間間隔毎に行うことができる。
【００８６】
Ｓ２０５では、取得中フラグ４３ａの値を「１」に設定する。続いて、後述する簡易ログ取得処理を実行し、各周辺装置から簡易ログを取得する（Ｓ２０６）。そして、Ｓ２０６の簡易ログ取得処理が終了すると、取得中フラグ４３ａの値を「０」に設定する（Ｓ２０７）。これにより、この取得中フラグ４３ａによって、デバイス監視処理中に簡易ログ取得処理が行われていることを示すことができる。そして、この取得中フラグ４３ａにより、ログ収集プログラム４４ｂによって簡易ログ取得処理が重複して行われることを予防する。
【００８７】
続いて、ＰＣ１１の電源がオフによる終了指示、又は、ユーザからのデバイス監視プログラム４４ａの終了指示があったかを確認し（Ｓ２０８）、終了指示があった場合（Ｓ２０８：Ｙｅｓ）、この処理を終了し、終了指示がなかった場合は（Ｓ２０８：Ｎｏ）、Ｓ２０３へ戻る。そして、終了指示があるまで、Ｓ２０３からＳ２０８の処理を繰り返し実行する。これによって、一定の時間間隔毎に、簡易ログ取得処理を実行し、各周辺装置から簡易ログを取得することができる。
【００８８】
次に、図６を参照して、ＰＣ１１で実行される簡易ログ取得処理について説明する。図６は、その簡易ログ取得処理を示すフローチャートである。この処理は、監視対象の周辺装置から簡易ログを取得する処理で、上述したデバイス監視処理、若しくは、後述するログ収集処理の中でＣＰＵ４１により実行される。
【００８９】
この処理では、まず、カウンタＭをＲＡＭ４３に設け、初期値として「０」を代入する（Ｓ３０１）。カウンタＭは、簡易ログ取得処理で監視対象の全ての周辺装置から簡易ログを取得するために、各周辺装置からの簡易ログを取得する処理のループ回数をカウントするカウンタである。
【００９０】
続いて、カウンタＭがデバイス監視処理でＲＡＭ４３に保持された周辺装置の数Ｎ未満であるかを確認する（Ｓ３０２）。このＳ３０２の処理は、各周辺装置からの簡易ログを取得する処理のループ終了判定を行う処理である。そして、カウンタＭが周辺装置の数Ｎ以上である場合は（Ｓ３０２：Ｎｏ）、監視対象の全ての周辺装置から簡易ログの取得が完了したと判断し、この処理を終了する。
【００９１】
一方、カウンタＭが周辺装置の数Ｎ未満である場合（Ｓ３０２：Ｙｅｓ）、Ｓ３０３の処理へ移行する。Ｓ３０３〜Ｓ３１５の処理が、各周辺装置からの簡易ログを取得する処理に相当する。まず、Ｓ３０３では、デバイス監視処理でＲＡＭ４３に保持された各周辺装置の情報のうち、カウンタＭの値と同じ通し番号に対応する周辺装置の情報を読み出し、その周辺装置に対して簡易ログ要求コマンドを送信する。続いて、計時回路４５を用いてタイムアウトカウントを開始する（Ｓ３０４）。このタイムアウトカウントは、Ｓ３０３で送信した簡易ログ要求コマンドに対し、周辺装置が所定時間内に返り値を返すか否かを判定するために用いる。
【００９２】
即ち、続くＳ３０５では、周辺装置から簡易ログ要求コマンドに対する返り値があるかを確認し、返り値がない場合（Ｓ３０５：Ｎｏ）、タイムアウトカウントが所定時間をカウントして終了したかを確認する（Ｓ３０６）。そして、タイムアウトカウントが終了していない場合（Ｓ３０６：Ｎｏ）、Ｓ３０５の処理へ戻り、再び周辺装置から簡易ログ要求コマンドに対する返り値があるかを確認する。また、Ｓ３０６の処理において、タイムアウトカウンタが終了した場合（Ｓ３０６：Ｙｅｓ）、周辺装置が返り値を返信できる状態にないと判断し、別の周辺装置の簡易ログを取得するために、Ｓ３１５の処理へ移行する。尚、周辺装置が返り値を返信できない状態には、例えば、その周辺装置の電源がオフになっている場合や、ＰＣ１１と周辺装置との通信経路の間で異常が発生している場合がある。
【００９３】
一方、Ｓ３０５の処理によって、周辺装置から簡易ログ要求コマンドに対する返り値があると確認された場合（Ｓ３０５：Ｙｅｓ）、タイムアウトカウントを終了する（Ｓ３０７）。そして、得られた返り値が「Ｎｕｌl」データであるかを確認し（Ｓ３０８）、「Ｎｕｌｌ」データである場合（Ｓ３０８：Ｙｅｓ）、周辺装置に簡易ログが存在しないと判断し、別の周辺装置の簡易ログを取得するために、Ｓ３１５の処理へ移行する。一方、返り値が「Ｎｕｌl」データでない場合（Ｓ３０８：Ｎｏ）、その返り値に周辺装置の現在の時間と簡易ログとが含まれていると判断する。そして、後述する簡易ログ時間修正処理を実行し（Ｓ３０９）、周辺装置の現在の時間とＰＣ１１の現在の時間とから、簡易ログに記載された時間をＰＣ１１内部で使用される時間軸に合わせる処理を行う。
【００９４】
続いて、ログフォルダ領域４４ｅの「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下に、簡易ログを取得した周辺装置の名称と名前が一致するサブフォルダがあるかを確認する（Ｓ３１０）。時間を修正した簡易ログは、この周辺装置の名称と名前が一致するサブフォルダに保存される。Ｓ３１０の処理で、サブフォルダがあると確認されれば（Ｓ３１０：Ｙｅｓ）、Ｓ３１２の処理へ移行し、サブフォルダがなければ（Ｓ３１０：Ｎｏ）、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに周辺装置の名称と名前が一致するサブフォルダを作成して（Ｓ３１1）、Ｓ３１２の処理へ移行する。
【００９５】
Ｓ３１２では、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに存在する簡易ログを取得した周辺装置の名称と名前が一致するサブフォルダに、簡易ログファイルである「ｅａｓｙ．ｌｏｇ」ファイルが存在するかを確認する。そして、「ｅａｓｙ．ｌｏｇ」ファイルが存在する場合（Ｓ３１２：Ｙｅｓ）、その「ｅａｓｙ．ｌｏｇ」ファイルに時間を修正した簡易ログの内容をマージして保存する（Ｓ３１３）。このとき、既に「ｅａｚｙ.ｌｏｇ」ファイルに保存されている簡易ログの識別番号と、Ｓ３０５で取得した返り値に含まれる簡易ログの識別番号とを比較し、同じ識別番号の簡易ログが存在する場合は、その識別番号の簡易ログは過去に取得された簡易ログであると判断し、その簡易ログについては「ｅａｓｙ．ｌｏｇ」ファイルにマージしないようにしている。これにより、同一の簡易ログが重複して「ｅａｓｙ．ｌｏｇ」ファイルに記載されるのを避けることができる。Ｓ３１３の処理が終了すると、Ｓ３１５の処理へ移行する。
【００９６】
一方、Ｓ３１２の処理において、「ｅａｓｙ．ｌｏｇ」ファイルが存在しないと確認された場合（Ｓ３１２：Ｎｏ）、簡易ログを取得した周辺装置の名称と名前が一致するサブフォルダに「ｅａｓｙ．ｌｏｇ」ファイルを作成し、時間を修正した簡易ログの内容を全て「ｅａｓｙ．ｌｏｇ」ファイルにコピーする（Ｓ３１４）。その後、Ｓ３１５の処理へ移行する。
【００９７】
Ｓ３１５では、カウンタＭの値を「１」だけインクリメントし、Ｓ３０２の処理へ戻る。これにより、別の周辺装置に対して簡易ログの取得処理を実行することができる。
【００９８】
次に、図７を参照して、ＰＣ１１で実行される簡易ログ時間修正処理について説明する。図７は、その簡易ログ時間修正処理を示すフローチャートである。この処理は、簡易ログに記載された時間をＰＣ１１内部で使用される時間軸に合わせる処理で、上述した簡易ログ取得処理の中でＣＰＵ４１により実行される。
【００９９】
この処理では、まず、計時回路４５からＰＣ１１の現在の時間を取得する（Ｓ４０１）。続いて、簡易ログ取得処理中に取得した周辺装置の返り値から、周辺装置の現在の時間を取得し（Ｓ４０２）、ＰＣ１１の現在の時間と周辺装置の現在の時間との差を算出する（Ｓ４０３）。そして、簡易ログに記載されている時間にその算出した差を加算し、加算して得られた修正後の時間を簡易ログに上書きして（Ｓ４０４）、この処理を終了する。これにより、簡易ログに記載された時間をＰＣ１１内部で使用される時間軸に合わせることができる。そして、この簡易ログと、ＰＣ１１のアプリケーションプログラム４４ｃで生成されＰＣログファイルに記載されたログとの間で、各々のログが発生した時間的前後関係を正しく把握することができるようになり、不具合の原因解析にかかる負担を軽減することができる。
【０１００】
次に、図８を参照して、ＰＣ１１で実行されるログ収集処理について説明する。図８は、そのログ収集処理を示すフローチャートである。この処理は、ユーザからの指示によってＣＰＵ４１が上述したデバイス収集プログラム４４ｂを起動することによって実行される。
【０１０１】
この処理では、まず、監視対象の周辺装置から簡易ログを取得する。まず、取得中フラグ４３ａが「１」であるかを確認し（Ｓ５０１）、取得中フラグ４３ａが「１」である場合（Ｓ５０１：Ｙｅｓ）、デバイス監視処理によって簡易ログ取得処理が実行されているので、Ｓ５０２の処理へ移行する。Ｓ５０２では、取得中フラグ４３ａが「０」になったかを確認し、取得中フラグ４３ａが「１」のままである場合（Ｓ５０２：Ｎｏ）、Ｓ５０２の処理を繰り返し実行する。そして、取得中フラグ４３ａが「０」になった場合（Ｓ５０２：Ｙｅｓ）、デバイス監視処理によって簡易ログ処理の実行が完了したと判断し、Ｓ５０４の処理へ移行する。一方、Ｓ５０１の処理で、取得中フラグ４３ａが「０」である場合（Ｓ５０１：Ｎｏ）、上述した簡易ログ取得処理を実行して（Ｓ５０３）、Ｓ５０４の処理へ移行する。
【０１０２】
これらの処理により、監視対象の周辺装置から簡易ログが取得され、ログフォルダ４４ｅにある「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下の各周辺装置の名称と名前が一致するサブフォルダに保存された各周辺装置の簡易ログファイルが最新の状態に更新される。また、デバイス監視処理によって簡易ログ取得処理が実行されている場合に、デバイス収集処理が重複して簡易ログ取得処理を実行するのを防ぐことができる。
【０１０３】
Ｓ５０４の処理では、後述する詳細ログ取得処理を実行する。これにより、監視対象の全ての周辺装置から詳細ログがコピーされ、ログフォルダ４４ｅにある「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下の各周辺装置の名称と名前が一致するサブフォルダに、その詳細ログが保存される。
【０１０４】
次に、収集ログファイルを生成するための作業フォルダをハードディスク４４上に作成する（Ｓ５０５）。そして、ログとして収集すべき所定のレジストリ４４ｄの値を読み出し、それをテキストファイル化して作業フォルダに保存する（Ｓ５０６）。続いて、ログフォルダ４４ｅ（「ｌｏｇ」フォルダ）を、そのままのフォルダ構成で作業フォルダにコピーし、保存する（Ｓ５０７）。
【０１０５】
そして、レジストリ４４ｄの値、及び「ｌｏｇ」フォルダが保存された作業フォルダを、フォルダ構成を保持したまま圧縮・暗号化して１つの収集ログファイルを生成し、その収集ログファイルを、ハードディスク４４上にＯＳによって用意されたデスクトップフォルダへコピーする（Ｓ５０９）。そして、不要となった作業フォルダを削除して（Ｓ５１０）、この処理を終了する。
【０１０６】
このように、このログ収集処理は、ユーザからのデバイス収集プログラム４４ｂの実行指示という簡単な操作によって実行され、各周辺装置からの詳細ログの取得と収集ログファイルの生成とを続けて行うことができる。また、この処理により生成された収集ログファイルを解析することにより、収集ログファイルに格納されたレジストリ４４ｄの値や各種ログを確認し、ＰＣ１１で実行される処理で発生した不具合の原因の特定を行うことができる。また、収集ログファイルには「ｌｏｇ」フォルダのフォルダ構成が保たれているので、各周辺装置から取得された簡易ログ及び詳細ログに対して、その取得した周辺装置の名称がサブフォルダの名前という形で対応付けられている。よって、各々の簡易ログ及び詳細ログを生成した周辺装置を容易に識別することができる。
【０１０７】
次に、図９（ａ）を参照して、ＰＣ１１で実行される詳細ログ取得処理について説明する。図９（ａ）は、その詳細ログ取得処理を示すフローチャートである。この処理は、監視対象の周辺装置から詳細ログを取得する処理で、上述したログ収集処理の中でＣＰＵ４１により実行される。
【０１０８】
この処理では、まず、カウンタＭをＲＡＭ４３に設け、初期値として「０」を代入する（Ｓ６０１）。カウンタＭは、詳細ログ取得処理で監視対象の全ての周辺装置から詳細ログを取得するために、各周辺装置からの取得ログを取得する処理のループ回数をカウントするカウンタである。
【０１０９】
続いて、カウンタＭがデバイス監視処理でＲＡＭ４３に保持された周辺装置の数Ｎ未満であるかを確認する（Ｓ６０２）。このＳ６０２の処理は、各周辺装置からの詳細ログを取得する処理のループ終了判定を行う処理である。そして、カウンタＭが周辺装置の数Ｎ以上である場合は（Ｓ６０２：Ｎｏ）、監視対象の全ての周辺装置から詳細ログの取得が完了したと判断し、この処理を終了する。
【０１１０】
一方、カウンタＭが周辺装置の数Ｎ未満である場合（Ｓ６０２：Ｙｅｓ）、Ｓ６０３の処理へ移行する。Ｓ６０３〜Ｓ６１０の処理が、各周辺装置からの詳細ログを取得する処理に相当する。まず、Ｓ６０３では、デバイス監視処理でＲＡＭ４３に保持された各周辺装置の情報のうち、カウンタＭの値と同じ通し番号に対応する周辺装置の情報を読み出し、その周辺装置のリムーバブル記憶領域である詳細ログ領域２３ａから詳細ログをコピーする。
【０１１１】
続いて、後述する詳細ログ時間修正処理を実行し（Ｓ６０４）、詳細ログのうち警告ログ及びエラーログに記載された時間を、ＰＣ１１内部で使用される時間軸に合わせる。次に、ログフォルダ領域４４ｅの「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下に、詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダがあるかを確認する（Ｓ６０５）。時間を修正した詳細ログは、この周辺装置の名称と名前が一致するサブフォルダに保存される。Ｓ６０５の処理で、サブフォルダがあると確認されれば（Ｓ６０５：Ｙｅｓ）、Ｓ６０７の処理へ移行し、サブフォルダがなければ（Ｓ６０５：Ｎｏ）、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに周辺装置の名称と名前が一致するサブフォルダを作成して（Ｓ６０６）、Ｓ６０７の処理へ移行する。
【０１１２】
Ｓ６０７では、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに存在する詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダに、詳細ログファイルである「ｄｅｔａｉｌ．ｌｏｇ」ファイルが存在するかを確認する。そして、「ｄｅｔａｉｌ．ｌｏｇ」ファイルが存在する場合（Ｓ６０７：Ｙｅｓ）、その「ｄｅｔａｉｌ．ｌｏｇ」ファイルに時間を修正した詳細ログの内容をマージして保存する（Ｓ６０８）。このとき、既に「ｄｅｔａｉｌ.ｌｏｇ」ファイルに保存されている詳細ログの識別番号と、Ｓ６０３でコピーした詳細ログの識別番号とを比較し、同じ識別番号の詳細ログが存在する場合は、その識別番号の詳細ログは過去に取得された詳細ログであると判断し、その詳細ログについては「ｄｅｔａｉｌ．ｌｏｇ」ファイルにマージしないようにしている。これにより、同一の詳細ログが重複して「ｄｅｔａｉｌ．ｌｏｇ」ファイルに記載されるのを避けることができる。Ｓ６０８の処理が終了すると、Ｓ６１０の処理へ移行する。
【０１１３】
一方、Ｓ６０７の処理において、「ｄｅｔａｉｌ．ｌｏｇ」ファイルが存在しないと確認された場合（Ｓ６０７：Ｎｏ）、詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダに「ｄｅｔａｉｌ．ｌｏｇ」ファイルを作成し、時間を修正した詳細ログの内容を全て「ｄｅｔａｉｌ．ｌｏｇ」ファイルにコピーする（Ｓ６０９）。その後、Ｓ６１０の処理へ移行する。
【０１１４】
Ｓ６１０では、カウンタＭの値を「１」だけインクリメントし、Ｓ６０２の処理へ戻る。これにより、別の周辺装置に対して詳細ログの取得処理を実行することができる。
【０１１５】
次に、図９（ｂ）を参照して、ＰＣ１１で実行される詳細ログ時間修正処理について説明する。図９（ｂ）は、その詳細ログ時間修正処理を示すフローチャートである。この処理は、詳細ログのうち警告ログ及びエラーログに記載された時間を、ＰＣ１１内部で使用される時間軸に合わせる処理で、上述した詳細ログ取得処理の中でＣＰＵ４１により実行される。
【０１１６】
この処理では、まず、ログフォルダ領域４４ｅの「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下に、詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダがあるかを確認する（Ｓ６５０）。そして、サブフォルダがある場合（Ｓ６５０：Ｙｅｓ）、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに存在する詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダに、その周辺装置の簡易ログファイルである「ｅａｓｙ．ｌｏｇ」ファイルが存在するかを確認する（Ｓ６５１）。これにより、詳細ログをコピーした周辺装置から簡易ログが取得されているかを確認することができる。
【０１１７】
そして、「ｅａｓｙ．ｌｏｇ」ファイルが存在する場合（Ｓ６５1：Ｙｅｓ）、即ち、周辺装置から簡易ログが取得されていた場合、「ｅａｓｙ．ｌｏｇ」ファイル中の簡易ログに示された識別番号と同じ識別番号を持つ詳細ログに記載された時間を、同じ識別番号の簡易ログに記載された時間に置換する（Ｓ６５２）。
【０１１８】
上述した通り、簡易ログは詳細ログの警告ログ及びエラーログと同じものであり、同じ識別番号を持つログが、周辺装置内部の同一の事象で発生したログである。また、「ｅａｓｙ．ｌｏｇ」ファイル中の簡易ログに示された時間は、簡易ログ時間修正処理によってＰＣ１１内部で使用される時間軸に合わせた時間である。これにより、Ｓ６５２の処理によって、詳細ログのうち警告ログ及びエラーログに記載された時間を、ＰＣ１１内部で使用される時間軸に合わせることができる。よって、この詳細ログのうち少なくとも警告ログ及びエラーログと、ＰＣ１１のアプリケーションプログラム４４ｃで生成されＰＣログファイルに記載されたＰＣログとの間で、各々のログが発生した時間的前後関係を把握することができ、不具合の原因解析にかかる負担を軽減することができる。また、簡易ログと詳細ログとの間で、同一のログに記載された時間を同じ時間に合わせることができる。また、詳細ログには、事象の発生順に識別番号６１ｂが記載されているので、インフォメーションログについてもＰＣログとの間で、各々のログの時間的前後関係を把握することができる。
【０１１９】
一方、Ｓ６５０の処理で、ログフォルダ領域４４ｅの「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ下に、詳細ログをコピーした周辺装置の名称と名前が一致するサブフォルダがないと確認された場合（Ｓ６５０：Ｎｏ）、又は、Ｓ６５１の処理で、そのサブフォルダに「ｅａｓｙ．ｌｏｇ」ファイルが存在していないと確認された場合（Ｓ６５１：Ｎｏ）は、周辺装置から簡易ログが取得されていないので、詳細ログに対して、その詳細ログに記載された時間が全て周辺装置内部で使用されている時間であることを示すマーカを追加する（Ｓ６５３）。このマーカにより、ログの参照者が詳細ログに記載されている時間が周辺装置内部で使用されている時間であることを認識することができる。
【０１２０】
以上説明したように、本実施形態のログ収集システム１によれば、ＰＣ１１のログ収集プログラム４４ｂで実行されるログ収集処理により、所定のタイミングで各周辺装置（プリンタ１０ａ、スキャナ１０ｂ、ファクシミリ１０ｃ）から各々の動作に関する詳細ログを取得する。そして、各周辺装置（プリンタ１０ａ、スキャナ１０ｂ、ファクシミリ１０ｃ）の動作に関する詳細ログと、ＰＣ１１が各周辺装置に対して行った動作に関するＰＣログとをまとめて１つの収集ログファイルを生成する。そして、この収集ログファイルにより、各周辺装置で生成したログとＰＣ１１で生成したログを合わせて確認することができるので、ＰＣ１１により実行される処理において生じた不具合の原因の特定を容易にすることができる。
【０１２１】
また、ＰＣ１１のデバイス監視プログラム４４aで実行されるデバイス監視処理により、詳細ログのうち、その周辺装置の動作に影響を及ぼすことを示す警告ログ及びエラーログが簡易ログとして常時又は断続的に取得され、収集ログファイルにその簡易ログが含まれる。これにより、所定のタイミングで詳細ログが取得できなかった場合でも、常時又は断続的に取得された簡易ログとＰＣログとによって、不具合の原因をある程度絞り込むことができる。
【０１２２】
一方、デバイス監視処理により常時又は断続的に取得される簡易ログのデータ量は、ログ収集処理により所定のタイミングで取得された詳細ログのデータ量よりも小さいので、詳細ログを常時又は断続的に取得する場合よりもＰＣ１１と各周辺装置との間の通信負荷を抑制することができる。従って、ＰＣ１１と各周辺装置との間の通信負荷の増大を抑制しつつ、ＰＣ１１により実行される処理において生じた不具合の原因を容易に特定するためのログを収集することができる。
【０１２３】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【０１２４】
例えば、上記実施形態では、詳細ログ修正処理を図９（ｂ）に示すフローチャートによって実行する例を示したが、これを図７に示した簡易ログ修正処理と同様のフローによって実行するようにしてもよい。この場合、詳細ログを詳細ログ領域２３ａからコピーするときに、その周辺装置に設けられた計時回路３１から周辺装置の現在の時間も合わせて取得するようにしてもよい。
【０１２５】
このように、詳細ログ修正処理を図７に示した簡易ログ修正処理と同様のフローによって実行すれば、ＰＣ１１で生成したＰＣログと詳細ログとの間で、各々のログが発生した時間的前後関係を正しく把握することができ、不具合の原因解析にかかる負担を軽減することができる。また、詳細ログ修正処理を図７で示した簡易ログ修正処理の同様のフローによって実行する場合に、詳細ログのうち一部のログ（例えば、警告ログとエラーログ）のみに対して、そのログに記載された時間を修正するようにすれば、多量の詳細ログが存在する場合であっても、その処理時間を短くすることができる。
【０１２６】
また、上記実施形態では、簡易ログ領域２２ａを揮発性のＲＡＭ２２に設け、詳細ログ領域２３ａを不揮発性のＥＥＰＲＯＭ２３に設けたが、これに限るものではなく、それぞれの領域を揮発性のメモリと不揮発性のメモリとのどちらに設けてもよい。また、不揮発性のメモリとして、ＥＥＰＲＯＭ２３ではなく、フラッシュメモリやハードディスクなどを用いてもよい。
【０１２７】
また、上記実施形態では、簡易ログ領域２２ａをＰＣ１１から直接アクセスすることができない領域とし、詳細ログ領域２３ａをＰＣ１１から直接アクセスすることができることができる領域としたが、これに限るものではなく、簡易ログ領域２２ａをＰＣ１１から直接アクセスすることができる領域としてもよいし、詳細ログ領域２３ａをＰＣ１１から直接アクセスすることができない領域としてもよい。簡易ログ領域２２ａをＰＣ１１から直接アクセスすることができる領域とした場合、簡易ログ取得処理において、簡易ログを簡易ログ領域２２ａから直接コピーするようにしてもよい。このとき、簡易ログ時間修正処理を実行するために、周辺装置に設けられた計時回路３１から周辺装置の現在の時間も簡易ログのコピーと合わせて取得できるようにしてもよい。また、詳細ログ領域２３ａをＰＣ１１から直接アクセスすることができない領域とした場合、詳細ログ取得処理において、各周辺装置に対して詳細ログ要求コマンドを送信するようにしてもよい。各周辺装置では、詳細ログ要求コマンドを受信したときに、図４で示した簡易ログ送信処理と同様の処理フローで、詳細ログをＰＣ１１へ送信するようにしてもよい。
【０１２８】
また、上記実施形態では、ログ収集プログラム４４ｂをハードディスク４４に格納するようにしたが、これに限らず、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフロッピーディスク（登録商標）に格納し、これらから起動するようにしてもよい。
【０１２９】
また、上記実施形態では、デバイス監視処理によって一定の時間間隔毎に各周辺機器から、簡易ログを取得したが、常時周辺装置を監視して、簡易ログが発生するたびにその簡易ログを取得するようにしてもよい。
【０１３０】
また、上記実施形態では、周辺装置としてプリンタ１０ａ、スキャナ１０ｂ、ファクシミリ１０ｃを例示したしたが、これに限らず、カメラや外付けのハードディスクドライブなど、ＰＣ１1に接続される装置であれば、本発明のログ収集システムを構成することができる。
【０１３１】
また、上記実施形態では、１つのアプリケーションプログラム４４ｃにより周辺装置毎に生成されたＰＣログをログ収集プログラム４４ｂによって収集する例を示したが、複数のアプリケーションプログラムの各々により周辺装置毎に生成されたＰＣログをログ収集プログラム４４ｂによって収集するようにしてもよい。複数のアプリケーションプログラムからＰＣログを収集することにより、不具合の原因の特定をより容易に行うことができる。
【０１３２】
この場合、周辺装置毎に１つずつ生成されたＰＣログファイルを複数のアプリケーションプログラムで共通に使用し、各々の周辺装置に対応するＰＣログファイルには、ＰＣログを生成したアプリケーションプログラムの識別情報を記載するようにしてもよい。また、アプリケーションプログラム毎に、各周辺装置のＰＣログファイルを生成し、「ＰＣ＿ｌｏｇ」フォルダに各々のアプリケーションプログラムを識別可能な名前を付したサブフォルダを設けて、各サブフォルダに各々のアプリケーションプログラムが生成したＰＣログファイルを格納するようにしてもよい。また、アプリケーションプログラム毎に生成した各周辺装置のＰＣログファイルの名前に、生成したアプリケーションプログラムを識別可能な名称を含めるようにしてもよい。いずれの場合も、ＰＣログファイルを生成したアプリケーションプログラムを識別することが可能となり、収集したログの解析にかかる労力を低減することができる。
【０１３３】
また、上記実施形態で示したＰＣログとは別に、各アプリケーションプログラムの起動、終了、設定変更、及びＯＳとの通信についてのログを生成して「ＰＣ＿ｌｏｇ」フォルダに保存し、このログをログ収集プログラムによって収集するようにしてもよい。これにより、不具合の原因の特定をより容易に行うことができる。
【０１３４】
また、上記実施形態では、周辺装置毎に生成された簡易ログ６２及び詳細ログ６１を、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダに設けられた各周辺装置に対応するサブフォルダに保存する例を示したが、これに代えて、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ上に簡易ログ６２及び詳細ログ６１を保存する簡易ログファイル及び詳細ログファイルを周辺装置毎に用意し、各々のファイルの名前に、対応する周辺装置が識別可能な情報を含めるようにしてもよい。若しくは、「Ｄｅｖｉｃｅ＿ｌｏｇ」フォルダ上に全ての周辺装置で生成された簡易ログ６２及び詳細ログ６１を保存する簡易ファイル及び詳細ログファイルを各々１つずつ用意し、ログを生成した周辺装置の識別情報とともに、それぞれのファイルに簡易ログ６２及び詳細ログ６１を保存するようにしてもよい。いずれの場合も、簡易ログ６２及び詳細ログ６１を生成した周辺装置を容易に識別することができる。
【０１３５】
また、上記実施形態では、詳細ログ６１及び簡易ログ６２に識別番号６１ｂを記載する例を示したが、時間６１ａが識別番号を兼ねるように構成してもよい。この場合、時間６１ａを例えば１ｍｓｅｃといった細かい単位まで記載するようにし、各ログで時間６１ａが重複しないようにすればよい。
【図面の簡単な説明】
【０１３６】
【図１】本発明の一実施形態におけるログ収集システムの電気的構成を示すブロック図である。
【図２】（ａ）は詳細ログ領域に記憶される詳細ログの内容を模式的に示した模式図であり、（ｂ）は簡易ログ領域に記憶される簡易ログの内容を模式的に示した模式図であり、（ｃ）はログフォルダのフォルダ構成を模式的に示した模式図であり、（ｄ）はログ収集システムの通常時における動作の流れを示すシーケンスチャートであり、（ｅ）はログ収集システムのログ収集時における動作の流れを示すシーケンスチャートである。
【図３】プリンタで実行されるログ作成処理のフローチャートである。
【図４】プリンタで実行される簡易ログ送信処理のフローチャートである。
【図５】ＰＣで実行されるデバイス監視処理のフローチャートである。
【図６】ＰＣで実行される簡易ログ取得処理のフローチャートである。
【図７】ＰＣで実行される簡易ログ時間修正処理のフローチャートである。
【図８】ＰＣで実行されるログ収集処理のフローチャートである。
【図９】（ａ）はＰＣで実行される詳細ログ取得処理のフローチャートであり、（ｂ）はＰＣで実行される詳細ログ時間修正処理のフローチャートである。
【符号の説明】
【０１３７】
１              ログ収集システム
１０ａ          プリンタ（周辺装置の一例）
１０ｂ          スキャナ（周辺装置の一例）
１０ｃ          ファクシミリ（周辺装置の一例）
１１            ＰＣ（コンピュータ装置の一例）
２２ａ          簡易ログ領域（第２ログ記憶領域の一例）
２３ａ          詳細ログ領域（第１ログ記憶領域の一例）
３１            計時回路（第１計時手段の一例）
４４ｃ          アプリケーションプログラム（第３記憶領域制御手段の一例）
４４ｅ          ログフォルダ（第３ログ記憶領域及び第４ログ記憶領域の一例）
４５            計時回路（第２計時手段の一例）
６１            詳細ログ（第１ログの一例）
６１ｂ          識別番号（識別情報の一例）
６２            簡易ログ（第２ログの一例）
Ｓ１０４        （第１ログ記憶制御手段の一例）
Ｓ１１０        （第２ログ記憶制御手段の一例）
Ｓ２０３〜Ｓ２０８    （第２ログ取得手段の一例）
Ｓ４０２        （周辺装置時間取得手段の一例）
Ｓ４０３        （時間差分算出手段の一例）
Ｓ５０４        （第１ログ取得手段の一例）
Ｓ５０９        （ログ情報生成手段の一例）
【図１】
0004600447.tif 000002
【図２】
0004600447.tif 000003
【図３】
0004600447.tif 000004
【図４】
0004600447.tif 000005
【図５】
0004600447.tif 000006
【図６】
0004600447.tif 000007
【図７】
0004600447.tif 000008
【図８】
0004600447.tif 000009
【図９】
0004600447.tif 000010