(58)【調査した分野】(Int.Cl.,DB名)
前記アプリケーション識別情報と、該アプリケーション識別情報が示すアプリケーションにエラーが発生した場合にログレベルの変更の要否を示す要否情報と、ログレベルの変更を通知する端末の仕様を示す通知先仕様情報と、を対応付けて格納する第2データベースをさらに有し、
前記第1データベースは、
前記アプリケーション識別情報と、前記端末識別情報と、該端末識別情報が示す端末の仕様を示す端末仕様情報と、を対応付けて格納し、
前記ログレベル変更決定部は、
前記複数の端末のいずれかから、前記端末識別情報と、前記アプリケーション識別情報と、前記エラーログと、を受信した場合、前記第2データベースを参照して、該アプリケーション識別情報に対応する前記要否情報が要を示していれば、該アプリケーション識別情報に対応する前記通知先仕様情報を抽出し、
続いて前記第1データベースを参照し、該アプリケーション識別情報が示すアプリケーションがインストールされており、かつ、前記通知先仕様情報が示す仕様と一致する端末を特定し、特定した端末に対し、該アプリケーションのログのログレベルを上げるよう通知する、請求項1に記載のログ収集サーバ。
前記複数の端末のいずれかにて、アプリケーションがインストールされた場合、および、前記複数の端末のいずれかから、前記詳細ログを収集した場合、前記第1データベースを更新する管理部をさらに有する、請求項5に記載のログ収集サーバ。
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に記載されたログ収集システムによれば、複数の端末からログを収集することが可能になる。
【0009】
しかし、例えば、複数の端末から一律に、デバックに利用可能な詳細ログを収集する場合、開発者がデバッグを効率良く行うことはできるものの、詳細ログは情報量が多いため、詳細ログの送受信のためにネットワークの負荷が増大し、また、詳細ログの取得のために端末のCPU(Central Processing Unit)の負荷が増大してしまう。
【0010】
その一方、複数の端末から一律に、エラーが発生したことを示すエラーログを収集する場合、エラーログは情報量が少ないため、ネットワークや端末のCPUの負荷の増大は回避できるものの、開発者がデバッグを効率良く行うことができなくなってしまう。
【0011】
そこで、本発明の目的は、ネットワークや端末のCPUの負荷が増大することなくログを収集し、開発者が効率よくデバッグを行うことができるログ収集サーバ、ログ収集システム、ログ収集方法を提供することにある。
【課題を解決するための手段】
【0012】
本発明のログ収集サーバは、
複数の端末からログを収集するログ収集サーバであって、
アプリケーションを識別するアプリケーション識別情報と、該アプリケーションがインストールされている端末を識別する端末識別情報と、を対応付けて格納する第1データベースと、
前記複数の端末のいずれかから、該端末の前記端末識別情報と、アプリケーションにエラーが発生した旨のエラーログと、該アプリケーションの前記アプリケーション識別情報と、を受信した場合、前記第1データベースを参照して、該アプリケーションがインストールされている端末を特定し、特定した端末に対し、該アプリケーションのログの詳細度を示すログレベルを上げるよう通知するログレベル変更決定部と、を有する。
【0013】
本発明のログ収集システムは、
複数の端末と、前記複数の端末からログを収集するログ収集サーバと、を有してなるログ収集システムであって、
前記ログ収集サーバは、
アプリケーションを識別するアプリケーション識別情報と、該アプリケーションがインストールされている端末を識別する端末識別情報と、を対応付けて格納する第1データベースと、
前記複数の端末のいずれかから、該端末の前記端末識別情報と、アプリケーションにエラーが発生した旨のエラーログと、該アプリケーションの前記アプリケーション識別情報と、を受信した場合、前記第1データベースを参照して、該アプリケーションがインストールされている端末を特定し、特定した端末に対し、該アプリケーションのログの詳細度を示すログレベルを上げるよう通知するログレベル変更決定部と、を有し、
前記複数の端末の各々は、
アプリケーションにエラーが発生した場合、該アプリケーションのエラーログを取得し、取得したエラーログと、自己の端末の前記端末識別情報と、該アプリケーションの前記アプリケーション識別情報と、を前記ログ収集サーバに送信するログ取得部と、
前記ログ収集サーバから前記通知を受信した場合、前記ログ取得部が取得するログのうち前記通知の対象となるアプリケーションのログのログレベルを上げるログレベル変更部と、を有し、
前記ログ取得部は、以降に、前記通知の対象となるアプリケーションにエラーが発生した場合、該アプリケーションの詳細ログを取得し、取得した詳細ログと、自己の端末の前記端末識別情報と、該アプリケーションの前記アプリケーション識別情報と、を前記ログ収集サーバに送信する。
【0014】
本発明の第1のログ収集方法は、
複数の端末からログを収集するログ収集サーバによるログ収集方法であって、
アプリケーションを識別するアプリケーション識別情報と、該アプリケーションがインストールされている端末を識別する端末識別情報と、を対応付けて、第1データベースに格納し、
前記複数の端末のいずれかから、該端末の前記端末識別情報と、アプリケーションにエラーが発生した旨のエラーログと、該アプリケーションの前記アプリケーション識別情報と、を受信した場合、前記第1データベースを参照して、該アプリケーションがインストールされている端末を特定し、特定した端末に対し、該アプリケーションのログの詳細度を示すログレベルを上げるよう通知する。
【0015】
本発明の第2のログ収集方法は、
複数の端末と、前記複数の端末からログを収集するログ収集サーバと、を有してなるログ収集システムによるログ収集方法であって、
前記ログ収集サーバが、アプリケーションを識別するアプリケーション識別情報と、該アプリケーションがインストールされている端末を識別する端末識別情報と、を対応付けて、第1データベースに格納し、
前記複数の端末の各々が、アプリケーションにエラーが発生した場合、該アプリケーションのエラーログを取得し、取得したエラーログと、自己の端末の前記端末識別情報と、該アプリケーションの前記アプリケーション識別情報と、を前記ログ収集サーバに送信し、
前記ログ収集サーバが、前記複数の端末のいずれかから、該端末の前記端末識別情報と、アプリケーションにエラーが発生した旨のエラーログと、該アプリケーションの前記アプリケーション識別情報と、を受信した場合、前記第1データベースを参照して、該アプリケーションがインストールされている端末を特定し、特定した端末に対し、該アプリケーションのログの詳細度を示すログレベルを上げるよう通知し、
前記ログ収集サーバから前記通知を受信した特定の端末が、前記通知の対象となるアプリケーションのログのログレベルを上げ、以降に、該アプリケーションにエラーが発生した場合、該アプリケーションの詳細ログを取得し、取得した詳細ログと、自己の端末の前記端末識別情報と、該アプリケーションの前記アプリケーション識別情報と、を前記ログ収集サーバに送信する。
【発明の効果】
【0016】
本発明によれば、ログ収集サーバは、複数の端末のいずれかからアプリのエラーログを収集した場合、そのアプリがインストールされている特定の端末に対し、そのアプリのログのログレベルを上げるよう通知する。
【0017】
したがって、詳細ログを収集する対象は特定の端末のみとなるため、ネットワークの負荷や、特定の端末以外の端末のCPUの負荷が増大することなくログを収集でき、また、特定の端末からは詳細ログを収集できるため、開発者がデバッグを効率良く行うことができるという効果が得られる。
【発明を実施するための形態】
【0019】
以下に、本発明を実施するための形態について図面を参照して説明する。
【0020】
図1に示すように、本実施形態のログ収集システムは、ログ収集サーバ10と、複数の端末20と、を有している。なお、ログ収集サーバ10と複数の端末20とは、不図示のネットワークを介して互いに接続されているものとする。
【0021】
本実施形態においては、ログ収集サーバ10は、複数の端末20から、アプリのエラー発生時には、まずは、エラーログを収集する。そして、ログ収集サーバ10は、ある端末20からエラーログを収集したことをトリガとして、特定の端末20からは、そのアプリのログについては、ログの詳細度を示すログレベルを上げて、詳細ログを収集する。
【0022】
ここで、エラーログとは、単に端末20にエラーが発生したことを示した、詳細度が低いログであり、詳細ログとは、エラーが発生しただけでなく、エラーが発生したときの端末20の利用状況や通信状況等(例えば、エラーが発生したときの操作の内容や、通信していたデータの内容等)を示した、詳細度が高いログであるとする。そのため、開発者は、詳細ログを利用することで、デバックを効率良く行うことが可能となる。
【0023】
ログ収集サーバ10は、通信部11と、不具合管理DB(Data Base)12と、不具合管理部13と、ポリシ管理DB14と、ログレベル変更決定部15と、表示部16と、を有している。
【0024】
通信部11は、端末20と通信を行う。
【0025】
不具合管理DB12は、アプリを識別するアプリケーション識別情報であるアプリID(IDentification)、そのアプリがインストールされている端末20を識別する端末識別情報である端末ID、その端末20の仕様(機種、OS(Operating System)等)を示す端末仕様情報、そのアプリで発生した不具合情報等を、対応付けて格納する第1データベースである。
【0026】
より具体的には、不具合管理DB12は、
図2に示すように、開発者の開発者ID、その開発者が開発したアプリのアプリID、そのアプリがインストールされている端末20の端末ID、その端末20の仕様(機種、OS)を示す端末仕様情報、そのアプリに発生した不具合を示す不具合情報(詳細ログ)を、対応付けて格納する。
【0027】
不具合管理部13は、ネットワーク上で、複数の端末20のアプリのインストール状況や、複数の端末20からの詳細ログの受信状況を監視し、その監視結果に基づいて、不具合管理DB12の内容を動的に更新する。
【0028】
例えば、不具合管理部13は、ある端末20にあるアプリがインストールされた場合には、そのアプリのアプリIDを取得すると共に、その端末20の端末ID、端末仕様情報を取得し、そのアプリのアプリIDに対応付けて、その端末20の情報を不具合管理DB12に格納する。
【0029】
また、不具合管理部13は、ある端末20から、あるアプリがアンインストールされた場合には、そのアプリのアプリIDを取得すると共に、その端末20の端末ID、端末仕様情報を取得し、そのアプリのアプリIDに対応付けた、その端末20の情報を不具合管理DB12から削除する。
【0030】
また、不具合管理部13は、ある端末20から詳細ログを受信した場合には、その詳細ログを不具合情報として不具合管理DB12に格納する。
【0031】
ポリシ管理DB14は、ログレベルを変更する場合のポリシを管理する第2データベースであり、
図3に示すように、アプリのアプリID、そのアプリにエラーが発生した場合にログレベルの変更の要否を示す要否情報、ログレベル変更が必要な場合に、ログレベルの変更を通知する端末20の仕様を示す通知先仕様情報を、対応付けて格納する。なお、ポリシ管理DB14の内容は、各アプリの開発者の入力によって適宜更新される。
【0032】
ログレベル変更の通知先となる端末20の仕様は、例えば、アプリ#Aの場合は、エラーが発生した端末20と同機種(OSは問わない)となる。また、アプリ#Bの場合は、全ての端末20(機種、OSは問わない)となる。また、アプリ#Dの場合は、エラーが発生した端末20と同機種でかつ同OSとなる。また、アプリ#Eの場合は、エラーが発生した端末20と同OS(機種は問わない)となる。
【0033】
ログレベル変更決定部15は、複数の端末20のいずれかから、その端末20の端末IDと、アプリにエラーが発生した旨のエラーログと、そのアプリのアプリIDと、を受信した場合、ポリシ管理DB14を参照し、アプリIDに対応する要否情報が「要」を示していれば、対応する通知先仕様情報を抽出する。
【0034】
続いて、ログレベル変更決定部15は、不具合管理DB12を参照して、端末20から通知されたアプリIDが示すアプリがインストールされており、かつ、上記で抽出した通知先仕様情報が示す仕様と一致する端末20を特定し、特定した端末20に対し、そのアプリのアプリIDと、そのアプリのログレベルを上げる旨の指示を通知する。なお、端末20のアドレスは、その端末20の端末IDと対応付けて、不具合管理DB12で管理しても良いし、別のDBで管理しても良い。上記の通知を受けた端末20は、以降、そのアプリにエラーが発生した場合は、詳細ログをログ収集サーバ10に送信する。
【0035】
表示部16は、不具合管理DB12に不具合情報として格納されたアプリの詳細ログを表示する。開発者は、その詳細ログを利用して、そのアプリのデバッグを行い、そのアプリの不具合を修正することになる。
【0036】
端末20は、通信部21と、不具合監視部22と、ログ取得部23と、ログレベル変更部24と、を有している。
【0037】
通信部21は、ログ収集サーバ10と通信を行う。
【0038】
不具合監視部22は、アプリのエラー等の不具合を監視する。
【0039】
ログ取得部23は、アプリにエラーが発生した場合、そのアプリのログを取得し、そのログと、自己の端末20の端末IDと、そのアプリのアプリIDと、をログ収集サーバ10に送信する。
【0040】
ここで、ログ取得部23が取得するログのログレベルは、初期状態では、エラーログに設定されている。
【0041】
ログレベル変更部24は、ログ収集サーバ10から、アプリIDと、そのアプリIDが示すアプリのログレベルを上げる旨の指示と、を受信すると、ログ取得部23が取得するログのログレベルを上げて、詳細ログにする。以降、ログ取得部23は、そのアプリにエラーが発生した場合、そのアプリの詳細ログを取得し、ログ収集サーバ10に送信する。
【0042】
以下、本実施形態のログ収集システムの動作について説明する。
【0043】
まず、本実施形態のログ収集システムの動作の概要を、
図4を参照して説明する。
【0044】
図4に示すように、端末(#1)20において、あるアプリ(ここでは、アプリ#Aとする)のエラーが発生したとする(ステップA1)。
【0045】
この場合、端末(#1)20のログ取得部23は、アプリ#Aのエラーログを取得し、そのエラーログと、端末(#1)20の端末IDと、アプリ#AのアプリIDと、をログ収集サーバ10に送信する(ステップA2)。
【0046】
これを受けて、ログ収集サーバ10のログレベル変更決定部15は、
図3のポリシ管理DB14を参照する。ここでは、アプリ#Aに対応する要否情報が「要」を示しているので、アプリ#Aに対応する通知先仕様情報を抽出する。ここでは、通知先仕様情報が示す通知先は、全ての仕様の端末20であることを示している。
【0047】
続いて、ログ収集サーバ10のログレベル変更決定部15は、不具合管理DB12を参照して、アプリ#Aがインストールされている全ての端末20を特定し、特定した端末20をログレベル変更の通知先として決定する(ステップA3)。ここでは、エラーが発生した端末(#1)20と、端末(#1)20と同機種の端末(#2)20と、端末(#1)20とは異機種の端末(#3)20と、を通知先として決定したとする。
【0048】
続いて、ログ収集サーバ10のログレベル変更決定部15は、上記で決定した端末(#1)20〜端末(#3)20の各々に対し、アプリ#AのアプリIDと、アプリ#Aのログレベルを上げる旨の指示と、を通知する(ステップA4〜A6)。
【0049】
これを受けて、端末(#1)20〜端末(#3)20の各々のログレベル変更部24は、ログ取得部23が取得するログのログレベルを上げて、詳細ログにする(ステップA7〜A9)。
【0050】
以降、例えば、端末(#2)20において、アプリ#Aのエラーが発生すると、端末(#2)20のログ取得部23は、アプリ#Aの詳細ログを取得し、その詳細ログと、端末(#2)20の端末IDと、アプリ#AのアプリIDと、をログ収集サーバ10に送信する(ステップA10)。
【0051】
続いて、本実施形態のログ収集システムの動作の詳細を、
図5を参照して説明する。
【0052】
図5に示すように、端末(#1)20において、あるアプリ(ここでは、アプリ#Aとする)のエラーが発生したとする(ステップB1)。
【0053】
この場合、端末(#1)20のログ取得部23は、端末(#1)20のユーザに対し、エラーログ送信の可否を確認する(ステップB2)。この確認は、所定の確認画面を不図示の表示部に表示すること等で行う。
【0054】
ここで、エラーログ送信が「可」の回答が得られると(ステップB3)、端末(#1)20のログ取得部23は、アプリ#Aのエラーログを取得し、そのエラーログと、端末(#1)20の端末IDと、アプリ#AのアプリIDと、をログ収集サーバ10に送信する(ステップB4)。
【0055】
これを受けて、ログ収集サーバ10のログレベル変更決定部15は、
図3のポリシ管理DB14を参照する。ここでは、アプリ#Aに対応する要否情報が「要」を示しているので、アプリ#Aに対応する通知先仕様情報を抽出する。ここでは、通知先仕様情報が示す通知先は、全ての仕様の端末20であることを示している。
【0056】
続いて、ログ収集サーバ10のログレベル変更決定部15は、不具合管理DB12を参照して、アプリ#Aがインストールされている全ての端末20を特定し、特定した端末20をログレベル変更の通知先として決定する(ステップB5)。ここでは、エラーが発生した端末(#1)20と、端末(#1)20と同機種の端末(#2)20と、端末(#1)20とは異機種の端末(#3)20と、を通知先として決定したとする。
【0057】
続いて、ログ収集サーバ10のログレベル変更決定部15は、上記で決定した端末(#1)20〜端末(#3)20の各々に対し、アプリ#AのアプリIDと、アプリ#Aのログレベルを上げる旨の指示と、を通知する(ステップB6〜B8)。
【0058】
これを受けて、端末(#1)20〜端末(#3)20の各々のログレベル変更部24は、ログ取得部23が取得するログのログレベルを上げて、詳細ログにする(ステップB9〜B11)。
【0059】
以降、端末(#1)20〜端末(#3)20の各々のログ取得部23は、アプリ#Aのエラーが発生すると、アプリ#Aの詳細ログを取得し、その詳細ログと、自己の端末20の端末IDと、アプリ#AのアプリIDと、をログ収集サーバ10に送信する(ステップB12〜B14)。ログ収集サーバ10に送信された詳細ログは、不具合管理部13により不具合情報として不具合管理DB12に格納され、表示部16により表示される。
【0060】
その後、アプリ#Aの開発者は、アプリ#Aの詳細ログを参照する(ステップB15)。アプリ#Aの開発者は、その詳細ログを利用して、アプリ#Aのデバッグを行い、アプリ#Aの不具合を修正することになる。
【0061】
上述したように本実施形態においては、ログ収集サーバ10は、複数の端末20のいずれかからアプリのエラーログを収集した場合、そのアプリがインストールされている特定の端末20に対し、そのアプリのログのログレベルを上げるよう通知する。
【0062】
したがって、詳細ログを収集する対象は特定の端末20のみとなるため、ネットワークの負荷や、特定の端末20以外の端末20のCPUの負荷が増大することなくログを収集でき、また、特定の端末20からは詳細ログを収集できるため、開発者がデバッグを効率良く行うことができるという効果が得られる。
【0063】
また、本実施形態においては、ログ収集サーバ10は、ログレベル変更の通知先を決定するに際し、通知先となる端末20の仕様を定めたポリシ管理DB14を参照する。
【0064】
このように、ログ収集サーバ10側で、ログレベル変更の通知先となる端末20に関するポリシを管理するため、ポリシを変更し易いという効果が得られる。
【0065】
また、本実施形態においては、ログ収集サーバ10は、複数の端末20のいずれかにアプリがインストールされた場合には、不具合管理DB12を更新する。
【0066】
したがって、複数の端末20のアプリのインストール状況の変化に対して、動的に追従することができるという効果が得られる。
【0067】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更をすることができる。
【0068】
例えば、本実施形態においては、ログ収集サーバ10は、不具合管理DB12およびポリシ管理DB14を参照して、ログレベル変更の通知先を決定しているが、これに限定されない。例えば、ログ収集サーバ10は、不具合管理DB12のみを参照し、エラーが発生したアプリがインストールされている全ての端末20を通知先として決定しても良い。
【0069】
また、本実施形態においては、ログ収集サーバ10は、エラーが発生した端末20もログレベル変更の通知先の対象としているが、エラーが発生した端末20については対象から外しても良い。
【0070】
また、本実施形態においては、ログ収集サーバ10は、特定の端末20に対し、エラーが発生したアプリのみのログレベルを上げるよう通知していたが、特定の端末20にインストールされている全てのアプリのログレベルを上げるよう通知しても良い。
【0071】
また、本実施形態においては、ログ収集サーバ10は、特定の端末20に対し、アプリのログレベルを上げるだけでなく、そのアプリにエラーが発生した場合にはエラー発生前後の詳細ログを送信するよう通知しても良い。
【0072】
また、本実施形態においては、ログ収集サーバ10において、ログレベルを元に戻す方法は特に限定されない。例えば、開発者がアプリの不具合を修正した(あるいは、不具合修正のために必要な情報を収集した)タイミングにて指示を行い、その指示を基に、ログ収集サーバ10が、ログレベルを元に戻すよう通知を行う方法などが考えられる。
【0073】
また、本実施形態においては、ログ収集サーバ10は、詳細ログの提供の促進を図るため、詳細ログを提供してくれたユーザに対し、ポイントを付与する等のインセンティブを与えても良い。
【0074】
また、本実施形態においては、ログ収集サーバ10は、端末20の仕様として、機種およびOSを管理しているが、これに限定されず、端末20のベンダー、端末20の使用言語、端末20の主な使用国等を追加で管理しても良い。
【0075】
また、本実施形態においては、ログ収集サーバ10は、アプリの詳細ログを表示部16に表示する際に、端末20の仕様別に詳細ログを表示しても良い。例えば、あるアプリの詳細ログを、端末20の機種別、OS別、ベンダー別、使用言語別、使用国別等で表示することにより、開発者はさらに効率良くデバッグを行うことができる。
【0076】
また、本実施形態においては、端末20は、アプリのエラー発生時に、ユーザにエラーログ送信の可否を確認しているが、ユーザにエラーログ送信の可否を確認するタイミングは、アプリのインストール時などでも良い。
【0077】
また、本実施形態においては、端末20は、ユーザにエラーログ送信の可否を確認しているが、詳細ログの送信時にも、ユーザに詳細ログ送信の可否を確認しても良い。
【0078】
また、本実施形態においては、端末20は、アプリにエラーが発生する度に、エラーログを送信しているが、エラーログを送信するタイミングは、エラーログが一定数溜まったタイミングでも良い。
【0079】
本出願は、2012年4月24日に出願された日本出願特願2012−98671を基礎とする優先権を主張し、その開示の全てをここに取り込む。