JP5906906B2 - ログ管理方法、ログ管理システムおよび情報処理装置 - Google Patents

ログ管理方法、ログ管理システムおよび情報処理装置 Download PDF

Info

Publication number
JP5906906B2
JP5906906B2 JP2012083270A JP2012083270A JP5906906B2 JP 5906906 B2 JP5906906 B2 JP 5906906B2 JP 2012083270 A JP2012083270 A JP 2012083270A JP 2012083270 A JP2012083270 A JP 2012083270A JP 5906906 B2 JP5906906 B2 JP 5906906B2
Authority
JP
Japan
Prior art keywords
log
application
dictionary
unit
character string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012083270A
Other languages
English (en)
Other versions
JP2013214159A (ja
Inventor
山下 健一
健一 山下
秀彦 伊野
秀彦 伊野
和夫 嶺野
和夫 嶺野
豪一 日高
豪一 日高
田中 秀明
秀明 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012083270A priority Critical patent/JP5906906B2/ja
Priority to US13/722,191 priority patent/US8959088B2/en
Publication of JP2013214159A publication Critical patent/JP2013214159A/ja
Application granted granted Critical
Publication of JP5906906B2 publication Critical patent/JP5906906B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ログ管理方法およびログ管理システムおよび情報処理装置に関する。
従来、アプリケーションを実行中に、アプリケーションの実行結果などのログ情報をログファイルに書き込むサーバなどの装置がある。かかる装置は、アプリケーションによって、ログ情報をメモリに格納する処理を実行し、メモリに格納されたログ情報を読み取ってログファイルに書き込む処理を実行する。ここで、ログ情報をメモリに格納する処理が実行されるタイミングと、メモリに格納されたログ情報をログファイルに書き込む処理が実行されるタイミングとは、互いに非同期である。これにより、ログ情報をログファイルに書き込む処理の処理結果に関わらず、ログ情報をメモリに格納する処理を実行することができる。このため、ログ情報をメモリに格納する処理、および、メモリに格納されたログ情報を読み取ってログファイルに書き込む処理などのアプリケーションが実行する、ログを出力する一連の処理の迅速化が図られる。
特開平7−271648号公報 特開2010−44747号公報 特開2008−15870号公報
しかしながら、上記の従来技術では、依然として、ログを出力する処理が遅延する場合があるという問題がある。
たとえば、アプリケーションを実行する上述の装置に、アプリケーションを実行させて処理結果を取得するクライアント端末の数が増加する場合には、かかる装置では、ログ情報をメモリに格納する処理を実行する回数が増加する。そのため、このような場合には、かかる装置では、メモリに記憶されたログ情報のサイズが大きくなり、ログ情報をメモリに格納する処理の速度が低下するような事象が発生することがある。
また、メモリに多くのログ情報が記憶されるため、メモリに格納されたログ情報をログファイルに書き込む処理では、ログファイルへのアクセスが多くなり、ログファイルが記憶されたサーバなどの装置へのアクセス回数が多くなる。そのため、ログ情報をログファイルに書き込む装置では、ログ情報をログファイルに書き込む際に遅延が発生し、この遅延に伴って、メモリからログ情報を読み取る処理についても遅延が発生する場合がある。
そこで、ログを出力する処理の迅速化という目的を達成するために、下記の様々な方法が考えられる。例えば、アプリケーションを実行する上述の装置が、ログ情報をログファイルに書き込む処理を実行する際に、ログ情報を圧縮し、圧縮したログ情報を、ログファイルが記憶された装置へ送信することで、ログ情報をログファイルに書き込む方法が考えられる。しかしながら、この場合には、かかる装置では、ログ情報をログファイルに書き込む処理を実行する際に、ログ情報を圧縮する処理を実行するため、処理の遅延が発生する。そのため、かかる方法では、ログを出力する処理の迅速化を図ることができない。
また、アプリケーションを実行する上述の装置が、ログ情報をメモリに格納する処理を実行する際に、ログ情報を圧縮してメモリに格納し、メモリに格納されたログ情報を読み取り、伸張してログファイルに書き込む処理を実行する方法も考えられる。しかしながら、この場合には、かかる装置では、ログ情報をログファイルに書き込む処理を実行する際に、ログ情報を圧縮する処理を実行するため、処理の遅延が発生する。そのため、かかる方法においても、ログを出力する処理の迅速化を図ることができない。
また、アプリケーションを実行する上述の装置が、ログ情報をメモリに格納する処理を実行する際に、ログ情報を圧縮してメモリに格納し、次のような処理を行う方法も考えられる。すなわち、装置が、メモリに格納されたログ情報を伸張し、ログ情報の出力先を判別し、ログ情報を再び圧縮して、出力先のログファイルに書き込む処理を実行する。しかしながら、この場合には、かかる装置では、ログ情報を圧縮し、伸張し、圧縮するという煩雑な処理を行うため、処理の遅延が発生する。そのため、かかる方法においても、ログを出力する処理の迅速化を図ることができない。
また、アプリケーションを実行する上述の装置が、ログ情報をメモリに格納する処理を実行する際に、辞書を用いてログ情報を圧縮して辞書とともにメモリに格納し、次のような処理を行う方法も考えられる。すなわち、装置が、メモリに格納され圧縮されたログ情報および辞書を取得し、取得したログ情報および辞書をログファイルに書き込む処理を実行する。しかしながら、辞書のデータサイズが大きいため、この場合においても、メモリに記憶されたデータのサイズが大きくなり、ログ情報をメモリに格納する処理の速度が低下するような事象が発生することがある。また、ログ情報および辞書のサイズが大きいため、ログ情報をログファイルに書き込む場合には、ログ情報をログファイルに書き込む際に遅延が発生し、この遅延に伴って、メモリからログ情報を読み取る処理についても遅延が発生する場合がある。そのため、かかる方法においても、ログを出力する処理の迅速化を図ることができない。
1つの側面では、本発明は、ログを出力する処理の遅延を抑制することができるログ管理方法、ログ管理システムおよび情報処理装置を提供することを目的とする。
本願の開示するログ管理方法は、一つの態様において、コンピュータが、ログ情報を圧縮して出力するアプリケーションの配備前に、前記アプリケーションのソースコードからログ情報に関するメッセージ形式の定義情報を抽出する処理を実行する。コンピュータが、前記ソースコードに基づくアプリケーションを配備する処理を実行する。また、配備された前記アプリケーションから出力されるログ情報を取得可能な装置が、前記ログ情報を取得した場合に、前記定義情報に基づいて前記ログ情報をメッセージ形式で出力する処理を実行する。
1態様によれば、ログを出力する処理の遅延を抑制することができる。
図1は、実施例に係るログ管理システムのシステム構成の一例を示す図である。 図2は、辞書登録関数の一例を示す図である。 図3は、辞書のデータ構造の一例を示す図である。 図4は、固定文字辞書のデータ構造の一例を示す図である。 図5は、ログファイルのデータ構造の一例を示す図である。 図6は、実施例に係る生成処理の手順を示すフローチャートである。 図7は、実施例に係る実行処理の手順を示すフローチャートである。 図8は、実施例に係るアプリケーションが実行する、第一のログ出力関数を呼び出して、パラメタを制御部の内部メモリに格納する処理の手順を示すフローチャートである。 図9は、実施例に係るアプリケーションが実行する、第二のログ出力関数を呼び出して、内部メモリに格納されたパラメタを読み取ってクライアント端末へ送信するように制御する処理の手順を示すフローチャートである。 図10は、実施例に係る表示制御処理の手順を示すフローチャートである。 図11は、実施例に係る伸張部が実行する、ログ伸張関数を呼び出して、ログ情報を伸張する処理の手順を示すフローチャートである。 図12は、抽出プログラムを実行するコンピュータを示す図である。 図13は、伸張プログラムを実行するコンピュータを示す図である。
以下に、本願の開示するログ管理方法、ログ管理システムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
実施例に係るログ管理システムについて説明する。図1は、実施例に係るログ管理システムのシステム構成の一例を示す図である。図1に示すように、ログ管理システム1は、サーバ10と、クライアント端末20とを有する。サーバ10とクライアント端末20とは、ネットワーク30を介して接続されている。
[サーバの構成]
図1に示すように、サーバ10は、入力部11と、表示部12と、通信部13と、記憶部14と、制御部15とを有するコンピュータである。
入力部11は、制御部15に情報を入力する。例えば、入力部11は、ユーザからの指示を受け付けて、制御部15に、各種の処理を実行する指示を入力する。入力部11のデバイスの一例としては、キーボードやマウスなどが挙げられる。
表示部12は、制御部15の制御により、各種の画像を表示する。
通信部13は、サーバ10とクライアント端末20との通信を行う。例えば、通信部13は、後述の実行部15cにより実行されたアプリケーションにおいて圧縮されたログ情報を受信すると、受信したログ情報を、ネットワーク30を介してクライアント端末20へ送信する。また、通信部13は、後述の送信制御部15dから送信された後述の辞書14bを受信すると、受信した辞書14bを、ネットワーク30を介してクライアント端末20へ送信する。
記憶部14は、制御部15で実行される各種プログラムを記憶する。また、記憶部14は、ソースコード14aを記憶する。また、記憶部14には、後述の抽出部15aによって生成された辞書14bが格納される。また、記憶部14には、後述の配備部15bによって生成されたアプリケーション14cが格納される。また、記憶部14は、固定文字辞書14dを記憶する。
ソースコード14aは、アプリケーションのソースコードである。かかるソースコードは、アプリケーションを開発する開発者などによって記述される。ソースコード14aは、各種の処理を規定するコードを含む。例えば、ソースコード14aは、後述のパラメタを制御部15の内部メモリに格納する処理を規定するコードを含む。また、ソースコード14aは、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信するように制御する処理を規定する。ここで、パラメタは圧縮されたログ情報である。また、パラメタを内部メモリに格納する処理が実行されるタイミングと、内部メモリに格納されたパラメタをクライアント端末20へ送信する処理が実行されるタイミングとは、互いに非同期である。これにより、パラメタをクライアント端末20へ送信する処理の処理結果に関わらず、パラメタを内部メモリに格納する処理を実行することができる。このため、パラメタを内部メモリに格納する処理、および、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信する処理などのアプリケーションが実行する、圧縮されたログであるパラメタを出力する一連の処理の迅速化が図られる。
ソースコード14aに含まれる他のコードの一例について説明する。例えば、ソースコード14aには、辞書登録関数が含まれる。辞書登録関数は、開発者などによって記述される。辞書登録関数の形式の一例としては、「辞書登録関数(ログID,”フォーマット文字列”)」のような形式が挙げられる。ここで、フォーマット文字列は、ログIDが示すログのフォーマットの文字列である。
フォーマット文字列は、ログのフォーマットの文字列においてパラメタが埋め込まれる位置、および、パラメタの圧縮方法を示す特殊文字を含む。なお、以下の説明では、ログのフォーマットの文字列のうち、特殊文字以外の文字列を固定文字列と称する場合がある。特殊文字は、パラメタの圧縮方法を特定する文字列「X」を記号「<@」と、記号「>」とで挟んだ「<@X>」で表される。例えば、フォーマット文字列が「AB<@X>CD」である場合には、フォーマット文字列「AB<@X>CD」は、固定文字列「AB」と、固定文字列「CD」との間に、「X」が示す圧縮方法で圧縮されたパラメタが埋め込まれることを示す。
図2は、辞書登録関数の一例を示す図である。図2の例は、ソースコード14aに、辞書登録関数(001,”<@TIME>:<@ID>の実行に成功しました”)、および 辞書登録関数(002,”<@TIME>:<@ID>の実行に失敗しました”)が含まれている場合を示す。
ここで、文字列「TIME」は、ソースコード14a上で1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻との差分をパラメタとすることにより、時刻を示すパラメタを圧縮する圧縮方法を示す。例えば、1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻が、「2012年1月30日12時11分20秒」である場合に、時刻を示す圧縮対象のパラメタが「2012年1月30日12時11分50秒」を表すときには、時刻を示すパラメタは次のような値となる。すなわち、差分の「30」秒が時刻を示すパラメタとなる。このように、差分の値を時刻を示すパラメタとして用いることで、時刻を示すパラメタのサイズを圧縮することができる。
また、文字列「ID」は、文字列そのものではなく、後述する固定文字辞書14dに登録された、文字列に対応するIDをパラメタとすることにより、文字列を圧縮する圧縮方法を示す。例えば、文字列「MSG−ID−0001」のIDが「E1」である場合に、文字列を示す圧縮対象のパラメタが文字列「MSG−ID−0001」を表すときには、ID「E1」を文字列を示すパラメタとする。このように、IDを文字列を示すパラメタとして用いることで、文字列を示すパラメタのサイズを圧縮することができる。
なお、パラメタの圧縮方法を特定する文字列の種類は、上記以外にも存在する。例えば、文字列「連番」は、ソースコード14a上で1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値との差分をパラメタとすることにより、数値を示すパラメタを圧縮する圧縮方法を示す。例えば、1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値が、「50」である場合に、数値を示す圧縮対象のパラメタが「55」を表すときには、数値を示すパラメタは次のような値となる。すなわち、差分の「5」が数値を示すパラメタとなる。このように、差分の値を数値を示すパラメタとして用いることで、数値を示すパラメタのサイズを圧縮することができる。
辞書14bについて説明する。図3は、辞書のデータ構造の一例を示す図である。図3の例が示す辞書14bは、後述のアプリケーション14cごとに生成される。図3の例では、辞書14bは、辞書を識別するためのID(Identification)である辞書IDが後述の抽出部15aにより登録される「辞書ID」の項目を有する。また、図3の例では、辞書14bは、「ログID」、「圧縮フォーマット」、「伸張フォーマット」の各項目を有する。「ログID」の項目には、ログのIDであるログIDが抽出部15aにより登録される。「圧縮フォーマット」の項目には、抽出部15aにより、辞書登録関数のフォーマット文字列から抽出された特殊文字中のパラメタの圧縮方法を特定する文字列が登録される。「伸張フォーマット」の項目には、抽出部15aにより、辞書登録関数のフォーマット文字列が登録される。辞書14bは、実行部15cにより実行されたアプリケーションにおいてログ情報を圧縮する場合に用いられる。
アプリケーション14cは、後述の配備部15bによりソースコード14aがコンパイルされて生成される。アプリケーション14cは、後述の実行部15cにより実行される。実行部15cにより実行されたアプリケーション14cは、パラメタを制御部15の内部メモリに格納する処理を行う。また、アプリケーション14cは、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信するように制御する処理を行う。上述したように、パラメタを内部メモリに格納する処理が実行されるタイミングと、内部メモリに格納されたパラメタをクライアント端末20へ送信する処理が実行されるタイミングとは、互いに非同期である。これにより、パラメタをクライアント端末20へ送信する処理の処理結果に関わらず、パラメタを内部メモリに格納する処理を実行することができる。このため、パラメタを内部メモリに格納する処理、および、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信する処理などの圧縮されたログであるパラメタを出力する一連の処理を迅速に行うことができる。
固定文字辞書14dは、文字列と、文字列よりデータサイズが小さいIDとを対応付けて記憶する。図4は、固定文字辞書のデータ構造の一例を示す図である。図4の例が示す固定文字辞書14dには、文字列「MSG−ID−0001」と、ID「E1」とが対応付けて登録された場合が示されている。また、図4の例が示す固定文字辞書14dには、文字列「MSG−ID−0002」と、ID「E2」とが対応付けて登録された場合が示されている。
記憶部14は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部14は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
制御部15は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部15は、抽出部15aと、配備部15bと、実行部15cと、送信制御部15dとを有する。
抽出部15aは、アプリケーション14cの配備前に、アプリケーション14cのソースコード14aからログ情報に関するメッセージ形式の定義情報を抽出する。例えば、抽出部15aは、まず、新たな辞書IDを生成し、生成した辞書IDが「辞書ID」の項目に登録された辞書14bを生成する。そして、抽出部15aは、ソースコード14bを読み込む。続いて、抽出部15aは、まだ、辞書登録関数を検索していない場合には、読み込んだソースコード14bの中から1つ目の辞書登録関数を検索し、辞書登録関数を検索したことがある場合には、ソースコード14bの中から次の辞書登録関数を検索する。
検索の結果、辞書登録関数が得られた場合には、抽出部15aは、得られた辞書登録関数のフォーマット文字列から特殊文字を抽出する。そして、抽出部15aは、抽出した特殊文字中のパラメタの圧縮方法を特定する文字列を、区切り文字「,」で並べた文字列を「圧縮フォーマット」に登録する文字列として生成する。その後、抽出部15aは、得られた辞書登録関数のログID、生成した文字列、得られた辞書登録関数のフォーマット文字列の組を辞書14bに登録する。抽出部15aは、上述した、辞書登録関数のログID、生成した文字列、辞書登録関数のフォーマット文字列の組を辞書14bに登録する処理を、検索の結果、辞書登録関数が得られなくなるまで繰り返し行う。これにより、先の図3に示すような辞書14bが生成される。
配備部15bは、ソースコード14aに基づくアプリケーション14cを配備する。例えば、配備部15bは、まず、ソースコード14aをコンパイルしてアプリケーション14cを生成する。そして、配備部15bは、生成されたアプリケーション14cを記憶部14に格納する。
実行部15cは、入力部11からアプリケーション14cを実行する指示を受信した場合に、アプリケーション14cに対応する辞書14bを読み込んで、アプリケーション14cを実行する。実行部15cによりアプリケーション14cが実行されている場合に、圧縮されたログ情報であるパラメタを内部メモリに格納するタイミングで、アプリケーション14cは、次のような処理を行う。すなわち、アプリケーション14cは、第一のログ出力関数を呼び出して、パラメタを制御部15の内部メモリに格納する処理を行う。これに加えて、実行部15cによりアプリケーション14cが実行されている場合に、内部メモリに格納されたログをクライアント端末20へ送信するタイミングで、アプリケーション14cは、次のような処理を行う。すなわち、アプリケーション14cは、第二のログ出力関数を呼び出して、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信するように制御する処理を行う。
アプリケーション14cにより実行される、第一のログ出力関数を呼び出して、パラメタを制御部15の内部メモリに格納する処理について説明する。例えば、アプリケーション14cは、まず、アプリケーション14cに対応する辞書ID、内部メモリに格納するパラメタ、かかるパラメタに対応する特殊文字を含むフォーマット文字列に対応するログIDを引数として、第一のログ出力関数にわたす。これに加えて、アプリケーション14cは、パラメタが書き込まれるログファイルのIDを示すログ出力先を引数として、第一のログ出力関数にわたす。例えば、アプリケーション14cは、引数として、「2012年1月30日12時11分50秒」、「MSG−ID−0001」の2つのパラメタを第一のログ出力関数にわたす。この場合、アプリケーション14cは、例えば、2つのパラメタのそれぞれに対応する特殊文字<@TIME>、<@ID>を含むフォーマット文字列「<@TIME>:<@ID>の実行に成功しました」に対応するログID「001」を引数としてわたす。
そして、第一のログ出力関数を呼び出したアプリケーション14cは、クライアント端末20へ、ログ出力先が示すログファイルを記憶しているか否かを応答する指示を送信する。ここで、かかる指示を受信したクライアント端末20は、ログ出力先が示すログファイルを記憶している場合には、ログ出力先が示すログファイルを記憶していることを示す情報をサーバ10へ送信して、応答する。一方、ログ出力先が示すログファイルを記憶していない場合には、クライアント端末20は、ログ出力先が示すログファイルを記憶していないことを示す情報をサーバ10へ送信して、応答する。
応答を受信した場合には、アプリケーション14cは、受信した応答が、ログファイルを記憶していることを示すか否かを判定する。ログファイルを記憶していることを示す場合には、アプリケーション14cは、クライアント端末20へ、ログ出力先が示すログファイルの「辞書ID」の項目に登録された辞書IDを送信する旨の指示を送信する。ここで、ここで、かかる指示を受信したクライアント端末20は、ログ出力先が示す後述のログファイル24aの「辞書ID」の項目に登録された辞書IDをサーバ10へ送信する。
そして、アプリケーション14cは、辞書IDを受信した場合には、受信した辞書IDと、引数として第一のログ出力関数にわたされた辞書IDとが一致するか否かを判定する。一致しない場合には、アプリケーション14cは、エラー通知を表示するように、表示部12の表示を制御する。
一方、一致する場合には、アプリケーション14cは、第一のログ出力関数にわたされた辞書IDが示す辞書14bを参照する。そして、アプリケーション14cは、第一のログ出力関数にわたされたログIDが「ログID」の項目に登録されたレコードの「圧縮フォーマット」の項目に登録された文字列から、特殊文字中のパラメタの圧縮方法を特定し、パラメタを圧縮する。
例えば、アプリケーション14cは、「圧縮フォーマット」の項目に登録された文字列が「TIME」である場合には、次のような処理を行う。すなわち、アプリケーション14cは、かかる「TIME」に対応する特殊文字<@TIME>の位置より1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻との差分の値を算出する。具体例を挙げて説明する。例えば、1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻が「2012年1月30日12時11分20秒」である場合に、パラメタが「2012年1月30日12時11分50秒」であるときには、アプリケーション14cは次の処理を行う。すなわち、アプリケーション14cは、差分の「30」秒を時刻を示すパラメタとして算出する。このように、差分の値を時刻を示すパラメタとして用いることで、時刻を示すパラメタのサイズを圧縮することができる。
また、アプリケーション14cは、「圧縮フォーマット」の項目に登録された文字列が「ID」である場合には、次のような処理を行う。すなわち、アプリケーション14cは、文字列のパラメタに対応する「ID」を固定文字辞書14dから取得し、取得した「ID」を新たなパラメタとすることにより、文字列を圧縮する。例えば、文字列「MSG−ID−0001」とID「E1」とが固定文字辞書14dに登録されている場合に、第一のログ出力関数にわたされたパラメタが、文字列「MSG−ID−0001」である場合には、アプリケーション14cは、次の処理を行う。すなわち、アプリケーション14cは、ID「E1」を文字列を示すパラメタとする。このように、IDを文字列を示すパラメタとして用いることで、文字列を示すパラメタのサイズを圧縮することができる。
また、アプリケーション14cは、「圧縮フォーマット」の項目に登録された文字列が「連番」である場合には、次のような処理を行う。すなわち、アプリケーション14cは、かかる「連番」に対応する特殊文字<@連番>の位置より1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値との差分の値を算出する。具体例を挙げて説明する。例えば、1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値が「50」である場合に、第一のログ出力関数にわたされたパラメタが「55」であるときには、アプリケーション14cは次の処理を行う。すなわち、アプリケーション14cは、差分の「5」を数値を示すパラメタとして算出する。このように、差分の値を数値を示すパラメタとして用いることで、数値を示すパラメタのサイズを圧縮することができる。
そして、アプリケーション14cは、第一のログ出力関数に引数としてわたされたログID、辞書IDおよびログ出力先、ならびに、圧縮されたパラメタを対応付けて制御部15の内部メモリに格納する。
次に、アプリケーション14cにより実行される、第二のログ出力関数を呼び出して、内部メモリに格納されたパラメタを読み取ってクライアント端末20へ送信するように制御する処理について説明する。例えば、アプリケーション14cは、まず、送信するパラメタを含むログ情報のログIDを引数として、第二のログ出力関数にわたす。そして、第二のログ出力関数を呼び出したアプリケーション14cは、第二のログ出力関数に引数としてわたされたログIDと同一のログIDに対応付けられた辞書IDおよびログ出力先、ならびに、圧縮されたパラメタを内部メモリから取得する。続いて、アプリケーション14cは、取得した辞書ID、圧縮されたパラメタ、第二のログ出力関数に引数としてわたされたログIDを、取得したログ出力先が示すログファイル24aを記憶部24に記憶するクライアント端末20へ送信するように制御する。例えば、アプリケーション14cは、取得した辞書ID、圧縮されたパラメタ、第二のログ出力関数に引数としてわたされたログIDを、クライアント端末20へ送信する指示とともに、通信部13に送信する。これにより、通信部13は、取得した辞書ID、圧縮されたパラメタ、第二のログ出力関数に引数としてわたされたログIDを、クライアント端末20へ送信する。
送信制御部15dは、抽出部15aにより辞書14bが生成されるたびに、クライアント端末20に辞書14bを送信する指示とともに、辞書14bを通信部13へ送信する。これにより、通信部13は、クライアント端末20に辞書14bを送信する。
制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
[クライアント端末の構成]
図1に示すように、クライアント端末20は、入力部21と、表示部22と、通信部23と、記憶部24と、制御部25とを有する。
入力部21は、制御部25に情報を入力する。例えば、入力部21は、ユーザからの指示を受け付けて、制御部25に、各種の処理を実行する指示を入力する。入力部21のデバイスの一例としては、キーボードやマウスなどが挙げられる。
表示部22は、各種の画像を表示する。例えば、表示部22は、後述の表示制御部25cの制御により、伸張されたログ情報を表示する。
通信部23は、クライアント端末20とサーバ10との通信を行う。例えば、通信部23は、サーバ10から辞書ID、圧縮されたパラメタ、ログIDを受信すると、受信した辞書ID、圧縮されたパラメタ、ログIDを、制御部25へ送信する。また、通信部23は、サーバ10から辞書14bを受信すると、受信した辞書14bを制御部25へ送信する。
記憶部24は、制御部25で実行される各種プログラムを記憶する。また、記憶部24には、後述の取得部25aによって生成されたログファイル24aが格納される。また、記憶部24には、サーバ10から送信された辞書14bが取得部25aによって格納される。また、記憶部24は、サーバ10の記憶部14に記憶された固定文字辞書14dと同一の固定文字辞書14dを記憶する。
ログファイル24aは、サーバ10から送信された辞書ID、圧縮されたパラメタ、および、ログIDが対応付けて登録されるファイルである。図5は、ログファイルのデータ構造の一例を示す図である。図5の例では、ログファイル24aは、辞書IDが取得部25aにより登録される「辞書ID」の項目を有する。また、図5の例では、ログファイル24aは、「ログID」、「パラメタ」の各項目を有する。「ログID」の項目には、ログIDが取得部25aにより登録される。「パラメタ」の項目には、圧縮されたパラメタが取得部25aにより登録される。
記憶部24は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部24は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
制御部25は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部25は、取得部25aと、伸張部25bと、表示制御部25cとを有する。
取得部25aは、各種の情報を取得する。例えば、取得部25aは、通信部23から送信された辞書14bを取得し、取得した辞書14bを記憶部24へ格納する。
また、取得部25aは、通信部23から送信された辞書ID、圧縮されたパラメタ、ログIDを取得すると、次のような処理を行う。まず、取得部25aは、取得した辞書IDが「辞書ID」の項目に登録されたログファイル24aがあるか記憶部24を検索する。検索の結果、ログファイル24aが得られなかった場合には、取得部25aは、取得した辞書IDが「辞書ID」の項目に登録されたログファイル24aを生成し、生成したログファイル24aを記憶部24へ格納する。続いて、取得部25aは、取得した圧縮されたパラメタを、生成したログファイル24aの「パラメタ」の項目に登録する。また、取得部25aは、取得したログIDを生成したログファイル24aの「ログID」の項目に登録する。
一方、検索の結果、ログファイル24aが得られた場合には、取得部25aは、ログファイル24aに新たなレコードを追加して、取得した圧縮されたパラメタを、「パラメタ」の項目に登録する。また、取得部25aは、取得したログIDを「ログID」の項目に登録する。
伸張部25bは、各種の情報を伸張する。例えば、伸張部25bは、ユーザから指定されたログファイルのID、および、ユーザから指定されたログIDを受信すると、次のような処理を行う。すなわち、伸張部25bは、指定されたログファイルのIDが示すログファイル24aを取得し、取得したログファイル24aの「辞書ID」の項目に登録された辞書IDを取得する。そして、伸張部25bは、取得した辞書IDが示す辞書14bを読み込む。続いて、伸張部25bは、ログ伸張関数を呼び出して、ログ情報を伸張する処理を実行する。
伸張部25bによって実行される、ログ伸張関数を呼び出して、ログ情報を伸張する処理について説明する。伸張部25bは、ユーザから指定されたログファイルのID、および、ユーザから指定されたログIDを引数として、ログ伸張関数にわたす。続いて、ログ伸張関数を呼び出した伸張部25bは、読み込んだ辞書14bのレコードのうち、「ログID」の項目に、引数としてわたされたログIDが登録されたレコードを特定する。そして、伸張部25bは、特定したレコードの「伸張フォーマット」の項目に登録されたフォーマット文字列を特定する。
例えば、先の図3の例に示す辞書14bの1番目のレコードを伸張部25bが特定した場合には、伸張部25bは、フォーマット文字列「<@TIME>:<@ID>の実行に成功しました」を特定する。また、先の図3の例に示す辞書14bの2番目のレコードを伸張部25bが特定した場合には、伸張部25bは、フォーマット文字列「<@TIME>:<@ID>の実行に失敗しました」を特定する。
続いて、伸張部25bは、特定したフォーマット文字列に含まれる特殊文字に対応するパラメタの種類に応じて、引数としてわたされたログIDが示すログ情報を伸張する。
例えば、伸張部25bは、特定したフォーマット文字列の特殊文字に含まれる文字列が「TIME」である場合には、次のような処理を行う。伸張部25bは、まず、引数としてわたされたログファイルのIDが示すログファイル24aのレコードのうち、「ログID」の項目に、引数としてわたされたログIDが登録されたレコードを特定する。そして、伸張部25bは、特定したレコードの「パラメタ」の項目に登録された、圧縮されたパラメタを取得する。
そして、伸張部25bは、取得したパラメータが示す値に、特定したフォーマット文字列に含まれる特殊文字<@TIME>の位置より1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻を加算した時刻を算出する。具体例を挙げて説明する。例えば、1つ前に位置する特殊文字<@TIME>の位置に埋め込まれた時刻が「2012年1月30日12時11分20秒」である場合に、取得したパラメタが示す値が「30」である場合には、伸張部25bは、次のような処理を行う。すなわち、伸張部25bは、「2012年1月30日12時11分20秒」に「30」秒を加算した時刻「2012年1月30日12時11分50秒」を算出する。これにより、圧縮されたパラメタ「30」が伸張されて、時刻「2012年1月30日12時11分50秒」となる。
また、伸張部25bは、特定したフォーマット文字列の特殊文字に含まれる文字列が「ID」である場合には、次のような処理を行う。伸張部25bは、まず、引数としてわたされたログファイルのIDが示すログファイル24aのレコードのうち、「ログID」の項目に、引数としてわたされたログIDが登録されたレコードを特定する。そして、伸張部25bは、特定したレコードの「パラメタ」の項目に登録された、圧縮されたパラメタを取得する。
そして、伸張部25bは、取得したパラメタが示すIDに対応する文字列を固定文字辞書14dから取得する。具体例を挙げて説明する。例えば、文字列「MSG−ID−0001」とID「E1」とが固定文字辞書14dに登録されている場合に、取得したパラメタが示すIDが「E1」である場合には、伸張部25bは、次のような処理を行う。すなわち、伸張部25bは、ID「E1」に対応する文字列「MSG−ID−0001」を固定文字辞書14dから取得する。これにより、圧縮されたパラメタ「E1」が伸張されて、文字列「MSG−ID−0001」となる。
その後、伸張部25bは、特定したフォーマット文字列中の特殊文字を、圧縮されたパラメタの伸張結果に変換することで、ログ情報を伸張する。例えば、伸張部25bが特定したフォーマット文字列が「<@TIME>:<@ID>の実行に成功しました」である場合について説明する。この場合、伸張部25bは、フォーマット文字列中の特殊文字<@TIME>を、算出した時刻「2012年1月30日12時11分50秒」に変換し、特殊文字<@ID>を、取得した文字列「MSG−ID−0001」に変換する。その結果、伸張部25bは、指定されたログIDが示すログ情報を伸張して「2012年1月30日12時11分50秒:MSG−ID−0001の実行に成功しました」というログ情報を得る。このようにして、伸張部25bは、ログ情報の伸張を行う。
なお、伸張部25bは、特定したフォーマット文字列の特殊文字に含まれる文字列が「連番」である場合には、次のような処理を行う。伸張部25bは、まず、引数としてわたされたログファイルのIDが示すログファイル24aのレコードのうち、「ログID」の項目に、引数としてわたされたログIDが登録されたレコードを特定する。そして、伸張部25bは、特定したレコードの「パラメタ」の項目に登録された、圧縮されたパラメタを取得する。
そして、伸張部25bは、取得したパラメータが示す数値に、特定したフォーマット文字列に含まれる特殊文字<@連番>の位置より1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値を加算した数値を算出する。具体例を挙げて説明する。例えば、1つ前に位置する特殊文字<@連番>の位置に埋め込まれた数値が「50」である場合に、取得したパラメタが示す数値が「5」である場合には、伸張部25bは、次のような処理を行う。すなわち、伸張部25bは、「50」に「5」を加算した数値「55」を算出する。これにより、圧縮されたパラメタ「5」が伸張されて、数値「55」となる。そして、伸張部25bは、特定したフォーマット文字列中の特殊文字<@連番>を、算出した数値に変換する。これにより、ログ情報が伸張される。
表示制御部25cは、伸張部25bにより伸張されたログ情報を表示するように、表示部22の表示を制御する。これにより、表示部22は、伸張されたログ情報を表示する。
制御部25は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
[処理の流れ]
次に、本実施例に係るサーバ10の処理の流れを説明する。図6は、実施例に係る生成処理の手順を示すフローチャートである。この生成処理の実行タイミングとしては様々なタイミングが考えられる。例えば、生成処理は、入力部11から送信された生成処理を実行する指示を制御部15が受信した場合に実行される。
図6に示すように、抽出部15aは、新たな辞書IDを生成し、生成した辞書IDが「辞書ID」の項目に登録された辞書14bを生成する(S101)。そして、抽出部15aは、ソースコード14bを読み込む(S102)。続いて、抽出部15aは、まだ、辞書登録関数を検索していない場合には、ソースコード14bの中から1つ目の辞書登録関数を検索し、辞書登録関数を検索したことがある場合には、ソースコード14bの中から次の辞書登録関数を検索する(S103)。そして、抽出部15aは、検索の結果、辞書登録関数が得られたか否かを判定する(S104)。
検索の結果、辞書登録関数が得られた場合(S104肯定)には、抽出部15aは、得られた辞書登録関数のフォーマット文字列から特殊文字を抽出する。そして、抽出部15aは、抽出した特殊文字中のパラメタの圧縮方法を特定する文字列を、区切り文字「,」で並べた文字列を「圧縮フォーマット」に登録する文字列として生成する(S105)。その後、抽出部15aは、得られた辞書登録関数のログID、生成した文字列、得られた辞書登録関数のフォーマット文字列の組を辞書14bに登録し(S106)、S103に戻る。一方、検索の結果、辞書登録関数が得られない場合(S104否定)には、処理を終了する。
図7は、実施例に係る実行処理の手順を示すフローチャートである。この実行処理の実行タイミングとしては様々なタイミングが考えられる。例えば、実行処理は、入力部11から送信された実行処理を実行する指示を制御部15が受信した場合に実行される。
図7に示すように、実行部15cは、指示に含まれる実行対象のアプリケーション14cに対応する辞書14bを読み込む(S201)。そして、実行部15cは、アプリケーション14cを実行し(S202)、処理を終了する。
図8は、実施例に係るアプリケーションが実行する、第一のログ出力関数を呼び出して、パラメタを制御部の内部メモリに格納する処理の手順を示すフローチャートである。
図8に示すように、第一のログ出力関数を呼び出したアプリケーション14cは、クライアント端末20へ、ログ出力先が示すログファイルを記憶しているか否かを応答する指示を送信する(S301)。次に、アプリケーション14cは、クライアント端末20からの応答を受信したか否かを判定する(S302)。応答を受信していない場合(S302否定)には、アプリケーション14cは、再び、S302の判定を行う。
一方、応答を受信した場合(S302肯定)には、アプリケーション14cは、受信した応答が、ログファイルを記憶していることを示すか否かを判定する(S303)。ログファイルを記憶していることを示さない場合(S303否定)には、S307へ進む。一方、ログファイルを記憶していることを示す場合(S303肯定)には、アプリケーション14cは、クライアント端末20へ、ログ出力先が示すログファイルの「辞書ID」の項目に登録された辞書IDを送信する旨の指示を送信する(S304)。続いて、アプリケーション14cは、クライアント端末20から辞書IDを受信したか否かを判定する(S305)。辞書IDを受信していない場合(S305否定)には、アプリケーション14cは、再び、S305の判定を行う。
一方、辞書IDを受信した場合(S305肯定)には、アプリケーション14cは、受信した辞書IDと、引数として第一のログ出力関数にわたされた辞書IDとが一致するか否かを判定する(S306)。一致しない場合(S306否定)には、アプリケーション14cは、エラー通知を表示するように、表示部12の表示を制御し(S310)、処理結果を内部メモリに格納し、リターンする。
一方、一致する場合(S306肯定)には、アプリケーション14cは、第一のログ出力関数にわたされた辞書IDが示す辞書14bを参照する。そして、アプリケーション14cは、第一のログ出力関数にわたされたログIDが「ログID」の項目に登録されたレコードの「圧縮フォーマット」の項目に登録された文字列から、特殊文字中のパラメタの圧縮方法を特定する(S307)。そして、アプリケーション14cは、特定した圧縮方法によってパラメタを圧縮する(S308)。
そして、アプリケーション14cは、第一のログ出力関数に引数としてわたされたログID、辞書IDおよびログ出力先、ならびに、圧縮されたパラメタを対応付けて制御部15の内部メモリに格納し(S309)、リターンする。
図9は、実施例に係るアプリケーションが実行する、第二のログ出力関数を呼び出して、内部メモリに格納されたパラメタを読み取ってクライアント端末へ送信するように制御する処理の手順を示すフローチャートである。
図9に示すように、第二のログ出力関数を呼び出したアプリケーション14cは、次のような処理を行う。すなわち、アプリケーション14cは、第二のログ出力関数に引数としてわたされたログIDと同一のログIDに対応付けられた辞書IDおよびログ出力先、ならびに、圧縮されたパラメタを内部メモリから取得する(S351)。続いて、アプリケーション14cは、取得した辞書ID、圧縮されたパラメタ、第二のログ出力関数に引数としてわたされたログIDを、次の装置へ送信するように制御する。すなわち、アプリケーション14cは、かかる辞書ID、パラメタおよびログIDを、取得したログ出力先が示すログファイル24aを記憶部24に記憶するクライアント端末20へ送信するように制御し(S352)、リターンする。
次に、本実施例に係るクライアント端末20の処理の流れを説明する。図10は、実施例に係る表示制御処理の手順を示すフローチャートである。表示制御処理は、例えば、入力部21から、表示制御処理を実行する指示を制御部25が受信した場合に実行される。なお、かかる指示には、ユーザから指定されたログファイルのID、および、ユーザから指定されたログIDが含まれる。
図10に示すように、伸張部25bは、指定されたログファイルのIDが示すログファイル24aを取得し、取得したログファイル24aの「辞書ID」の項目に登録された辞書IDを取得する(S401)。そして、伸張部25bは、取得した辞書IDが示す辞書14bを読み込む(S402)。続いて、伸張部25bは、ログ伸張関数を呼び出して、ログ情報を伸張する処理を実行する(S403)。その後、表示制御部25cは、伸張部25bにより伸張されたログ情報を表示するように、表示部22の表示を制御する(S404)。
図11は、実施例に係る伸張部が実行する、ログ伸張関数を呼び出して、ログ情報を伸張する処理の手順を示すフローチャートである。図11に示すように、ログ伸張関数を呼び出した伸張部25bは、辞書14bのレコードのうち、「ログID」の項目に、引数としてわたされたログIDが登録されたレコードを特定する。そして、伸張部25bは、特定したレコードの「伸張フォーマット」の項目に登録されたフォーマット文字列を特定する(S501)。
続いて、伸張部25bは、特定したフォーマット文字列に含まれる特殊文字に対応するパラメタの種類に応じて、引数としてわたされたログIDが示すログ情報を伸張し(S502)、リターンする。
[実施例の効果]
上述してきたように、本実施例に係るログ管理システム1では、サーバ10が、ログ情報を圧縮して出力するアプリケーションの配備前に、アプリケーションのソースコードからログ情報に関するメッセージ形式の定義情報を抽出する。そして、サーバ10が、ソースコードに基づくアプリケーションを配備する。また、クライアント端末20が、ログ情報を取得した場合に、定義情報に基づいてログ情報をメッセージ形式で出力する。すなわち、本実施例に係るログ管理システム1では、アプリケーションから出力されるログ情報が、ソースコードから抽出された定義情報によってメッセージ形式で出力される。したがって、ログ管理システム1によれば、ログを出力する処理の遅延を抑制することができる。
また、本実施例に係るサーバ10によれば、圧縮されたパラメタが内部メモリに格納され、内部メモリに格納されたパラメタが出力される。したがって、サーバ10によれば、パラメタに辞書を付加して内部メモリに格納しないため、内部メモリの容量が圧迫されるような状態になることを抑制することができる。
また、本実施例に係るサーバ10によれば、ログ情報全体ではなく、ログ情報の一部のパラメタを圧縮して出力するため、上述したように、ログを出力する処理の遅延を抑制することができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[抽出プログラム]
また、上記の実施例で説明したサーバ10の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図12を用いて、上記の実施例で説明したサーバ10と同様の機能を有する抽出プログラムを実行するコンピュータの一例を説明する。
図12は、抽出プログラムを実行するコンピュータを示す図である。図12に示すように、コンピュータ300は、CPU310、ROM320、HDD330、RAM340を有する。これら300〜340の各部は、バス350を介して接続される。
ROM320には、上記の実施例で示す抽出部15a、配備部15b、実行部15c、送信制御部15dと同様の機能を発揮する抽出プログラム320aが予め記憶される。なお、抽出プログラム320aについては、適宜分離しても良い。
そして、CPU310が、抽出プログラム320aをROM320から読み出して実行する。
そして、HDD330には、ソースコード、辞書、アプリケーション、固定文字辞書が設けられる。ソースコード、辞書、アプリケーション、固定文字辞書のそれぞれは、ソースコード14a、辞書14b、アプリケーション14c、固定文字辞書14dに対応する。
そして、CPU310は、ソースコード、辞書、アプリケーション、固定文字辞書を読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたソースコード、辞書、アプリケーション、固定文字辞書を用いて、抽出プログラム320aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納されなくともよく、全てのデータのうち処理に用いられるデータのみがRAM340に格納されれば良い。
なお、上記した抽出プログラムについては、必ずしも最初からHDD330に記憶させなくともよい。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
[伸張プログラム]
また、上記の実施例で説明したクライアント端末20の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図13を用いて、上記の実施例で説明したクライアント端末20と同様の機能を有する伸張プログラムを実行するコンピュータの一例を説明する。
図13は、伸張プログラムを実行するコンピュータを示す図である。図13に示すように、コンピュータ400は、CPU410、ROM420、HDD430、RAM440を有する。これら400〜440の各部は、バス450を介して接続される。
ROM420には、上記の実施例で示す取得部25a、伸張部25b、表示制御部25cと同様の機能を発揮する伸張プログラム420aが予め記憶される。なお、伸張プログラム420aについては、適宜分離しても良い。
そして、CPU410が、伸張プログラム420aをROM420から読み出して実行する。
そして、HDD430には、ログファイル、辞書、固定文字辞書が設けられる。ログファイル、辞書、固定文字辞書のそれぞれは、ログファイル24a、辞書14b、固定文字辞書14dに対応する。
そして、CPU410は、ログファイル、辞書、固定文字辞書を読み出してRAM440に格納する。さらに、CPU410は、RAM440に格納されたログファイル、辞書、固定文字辞書を用いて、伸張プログラム420aを実行する。なお、RAM440に格納される各データは、常に全てのデータがRAM440に格納されなくともよく、全てのデータのうち処理に用いられるデータのみがRAM340に格納されれば良い。
なお、上記した伸張プログラムについては、必ずしも最初からHDD430に記憶させなくともよい。
例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
10 サーバ
14 記憶部
14a ソースコード
14b 辞書
14c アプリケーション
14d 固定文字辞書
15 制御部
15a 抽出部
15b 配備部
15c 送信制御部
20 クライアント端末
24 記憶部
24a ログファイル
25 制御部
25a 取得部
25b 伸張部
25c 表示制御部

Claims (3)

  1. コンピュータが、
    ログ情報を圧縮して出力するアプリケーションの配備前に、前記アプリケーションのソースコードにおけるログ情報に関する圧縮方法を示す所定形式の文字列を抽出する処理と、
    前記所定形式の文字列に基づいて特定される圧縮方法を示す情報を、配備された前記アプリケーションから出力されるログ情報を取得可能な装置に送信する処理と、
    前記ソースコードに基づくアプリケーションを配備する処理と、
    を実行し、
    前記装置が、
    前記コンピュータから送信された前記圧縮方法を示す情報を取得する処理と、
    前記ログ情報を取得した場合に、取得した前記圧縮方法を示す情報に基づいて前記ログ情報を伸張してメッセージ形式で出力する処理と、
    を実行することを特徴とするログ管理方法。
  2. ログ情報を圧縮して出力するアプリケーションの配備前に、前記アプリケーションのソースコードにおけるログ情報に関する圧縮方法を示す所定形式の文字列を抽出する抽出部と、
    前記所定形式の文字列に基づいて特定される圧縮方法を示す情報を、配備された前記アプリケーションから出力されるログ情報を取得可能な第二の装置に送信する送信制御部と、
    前記ソースコードに基づくアプリケーションを配備する配備部と、
    を有する第一の装置と、
    配備された前記アプリケーションから出力されるログ情報と、前記第一の装置から送信された前記圧縮方法を示す情報とを取得する取得部と、
    前記ログ情報を取得した場合に、取得した前記圧縮方法を示す情報に基づいて前記ログ情報を伸張してメッセージ形式で出力するように出力部による出力を制御する出力制御部と、
    を有する前記第二の装置と、
    を有することを特徴とするログ管理システム。
  3. ログ情報を圧縮して出力するアプリケーションの配備前に、前記アプリケーションのソースコードにおけるログ情報に関する圧縮方法を示す所定形式の文字列を抽出する抽出部と、
    前記所定形式の文字列に基づいて特定される圧縮方法を示す情報を、配備された前記アプリケーションから出力されるログ情報を取得可能な装置に送信する送信制御部と、
    前記ソースコードに基づくアプリケーションを配備する配備部と
    有することを特徴とする情報処理装置。
JP2012083270A 2012-03-30 2012-03-30 ログ管理方法、ログ管理システムおよび情報処理装置 Expired - Fee Related JP5906906B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012083270A JP5906906B2 (ja) 2012-03-30 2012-03-30 ログ管理方法、ログ管理システムおよび情報処理装置
US13/722,191 US8959088B2 (en) 2012-03-30 2012-12-20 Log management method, log management system, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012083270A JP5906906B2 (ja) 2012-03-30 2012-03-30 ログ管理方法、ログ管理システムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2013214159A JP2013214159A (ja) 2013-10-17
JP5906906B2 true JP5906906B2 (ja) 2016-04-20

Family

ID=49236470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012083270A Expired - Fee Related JP5906906B2 (ja) 2012-03-30 2012-03-30 ログ管理方法、ログ管理システムおよび情報処理装置

Country Status (2)

Country Link
US (1) US8959088B2 (ja)
JP (1) JP5906906B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6735469B2 (ja) * 2016-03-22 2020-08-05 パナソニックIpマネジメント株式会社 ログ収集装置、監視カメラ、およびログ収集方法
US10387370B2 (en) * 2016-05-18 2019-08-20 Red Hat Israel, Ltd. Collecting test results in different formats for storage
DE102022003682A1 (de) * 2022-10-05 2024-04-11 Mercedes-Benz Group AG Verfahren zur Kompression und Dekompression von Log-Dateien und informationstechnisches System

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63175948A (ja) * 1987-01-14 1988-07-20 Hitachi Ltd メツセ−ジロギング方式
JP2818541B2 (ja) 1994-03-30 1998-10-30 日本電気株式会社 ログファイル書き込み方式およびログファイル書き込み方法
JP3357563B2 (ja) * 1997-02-18 2002-12-16 富士通株式会社 運用ログデータ管理装置
JP3459898B2 (ja) * 2000-05-23 2003-10-27 日本電気株式会社 組み込みシステムの障害情報トレーサ装置
JP2008015870A (ja) 2006-07-07 2008-01-24 Fujitsu Social Science Laboratory Ltd レイアウト変換機能を有するデータ処理装置およびデータ管理部品プログラムとそのプログラムを記録した記録媒体
JP2009025977A (ja) * 2007-07-18 2009-02-05 Canon Inc ミドルウェアにおける操作履歴機能
US20100042975A1 (en) 2008-08-13 2010-02-18 Honeywell International Inc. Message logging for software applications
JP4888465B2 (ja) * 2008-10-16 2012-02-29 日本電気株式会社 メッセージ管理システム、監視対象装置、監視装置、メッセージ管理方法およびそのプログラム
US9031997B2 (en) * 2011-10-25 2015-05-12 International Business Machines Corporation Log file compression

Also Published As

Publication number Publication date
JP2013214159A (ja) 2013-10-17
US8959088B2 (en) 2015-02-17
US20130262487A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
EP3531316B1 (en) Block chain-based data processing method and device
CN104246767B (zh) 用于云同步系统的遥测系统
CN107122289B (zh) 系统回归测试的方法、装置及系统
WO2016202000A1 (zh) 差分回退升级方法及装置
KR102006245B1 (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
CN107729246B (zh) 针对目标应用的辅助测试方法、装置、设备及存储介质
JP2001147826A (ja) 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
US9940115B2 (en) Mobile application deployment for distributed computing environments
US20170090950A1 (en) Information processing device, information processing method, and computer readable storage medium
WO2020177429A1 (zh) 在应用中嵌入代码的方法、装置及电子设备
US20210208996A1 (en) Verification automation apparatus, verification automation method, and computer-readable recording medium
CN111338608A (zh) 分布式应用开发方法、装置、节点设备及可读存储介质
JP5906906B2 (ja) ログ管理方法、ログ管理システムおよび情報処理装置
JP5604016B1 (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
CN113778897B (zh) 接口的自动测试方法、装置、设备及存储介质
CN108153896B (zh) 针对输入数据、输出数据的处理方法及装置
JP6507643B2 (ja) アプリ提供方法、アプリ提供サーバおよびアプリ提供プログラム
KR101833220B1 (ko) 애플리케이션 코드의 역난독화 검증 장치 및 이를 이용한 애플리케이션 코드의 역난독화 검증 방법
US10310871B2 (en) Non-transitory computer-readable recording medium storing control program, control device and control method
CN115269117A (zh) 一种资源创建方法、装置、计算机设备及存储介质
CN112667491B (zh) 虚拟机的功能测试方法及装置
JP7003435B2 (ja) 情報処理装置、プログラム、情報処理方法及びデータ構造
CN112256381A (zh) 语言资源处理方法、装置、计算机设备和存储介质
CN106649720B (zh) 一种数据处理方法及服务器
KR100938277B1 (ko) 압축포맷의 파일 압축과 복원 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160307

R150 Certificate of patent or registration of utility model

Ref document number: 5906906

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees