図面 (/)

技術 情報処理装置、ログ出力方法およびログ出力プログラム

出願人 富士通株式会社
発明者 阪梨紘子鈴木雄一郎新田稔
出願日 2012年9月4日 (8年2ヶ月経過) 出願番号 2012-193695
公開日 2014年3月17日 (6年8ヶ月経過) 公開番号 2014-049056
状態 特許登録済
技術分野 デバッグ/監視
主要キーワード 自動変更モード VMプログラム JIT 処理ルート 呼び出されたプログラム Javaメソッド 初期期間 光学ドライブ装置
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年3月17日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

小さなデータ量で障害発生時のログを出力できる可能性を高くする。

解決手段

情報処理装置10は、複数のプログラムモジュールを含むプログラムを実行する。ログレベル設定部11は、複数のプログラムモジュールの1つが呼び出されたとき、そのプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定する。例えば、ログレベル設定部11は、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合、出力されるログの詳細度を高くする。ログ出力部12は、設定された詳細度に応じた情報を含むログを出力する。

概要

背景

コンピュータなどの情報処理装置は、処理の実行状況を示すログを出力する機能を備える。出力されたログは、例えば、情報処理装置に障害が発生した場合に、その障害の発生原因究明プログラム修正のために使用される。

また、出力するログのデータ量を抑制するために、必要なログのみを出力する方法が考えられている。例えば、プログラム内に事前に設定されたチェックポイントのログのみを出力する方法がある。

また、ログレベルを変更することで出力するログのデータ量を可変する情報処理装置もある。例えば、異常発生時に自動的にログレベルを切り替えるようにした情報処理装置がある。あるいは、プロセスの実行時にその複製プロセスを生成しておき、複製元のプロセスが異常終了すると、ログレベルを上げて複製プロセスを実行するようにした情報処理装置もある。

概要

小さなデータ量で障害発生時のログを出力できる可能性を高くする。情報処理装置10は、複数のプログラムモジュールを含むプログラムを実行する。ログレベル設定部11は、複数のプログラムモジュールの1つが呼び出されたとき、そのプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定する。例えば、ログレベル設定部11は、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合、出力されるログの詳細度を高くする。ログ出力部12は、設定された詳細度に応じた情報を含むログを出力する。

目的

本発明は、小さなデータ量で障害発生時のログを出力できる可能性を高めた情報処理装置、ログ出力方法およびログ出力プログラムを提供する

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数のプログラムモジュールを含むプログラムを実行する情報処理装置において、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定する設定部と、設定された前記詳細度に応じた情報を含むログを出力するログ出力部と、を有することを特徴とする情報処理装置。

請求項2

前記複数のプログラムモジュールのうち、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールとの組み合わせごとに、実行された回数または実行頻度計数する計数部をさらに有し、前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールとその呼び出し元のプログラムモジュールとの組み合わせについての実行回数または実行頻度を所定のしきい値と比較し、実行回数または実行頻度が前記しきい値より低い場合には、出力されるログの前記詳細度を高くする、ことを特徴とする請求項1記載の情報処理装置。

請求項3

前記設定部は、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールのすべての組み合わせのうち、実行回数または実行頻度が前記しきい値以上である組み合わせの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする請求項2記載の情報処理装置。

請求項4

前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合には、出力されるログの前記詳細度を高くすることを特徴とする請求項1記載の情報処理装置。

請求項5

前記設定部は、前記複数のプログラムモジュールのうち、実行回数または実行頻度が前記しきい値以上であるプログラムモジュールの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする請求項4記載の情報処理装置。

請求項6

前記複数のプログラムモジュールのそれぞれについて、実行回数に基づいてネイティブコードコンパイルするかを決定し、コンパイルすると決定したプログラムモジュールをネイティブコードにコンパイルしてから実行する仮想マシン処理部をさらに有し、前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールがネイティブコードにコンパイルされたかを判定し、呼び出されたプログラムモジュールがネイティブコードにコンパイルされていない場合には、出力されるログの前記詳細度を高くする、ことを特徴とする請求項1記載の情報処理装置。

請求項7

複数のプログラムモジュールを含むプログラムを実行する情報処理装置におけるログ出力方法であって、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定し、設定された前記詳細度に応じた情報を含むログを出力する、ことを特徴とするログ出力方法。

請求項8

コンピュータに、前記コンピュータが実行する所定のプログラムに含まれる複数のプログラムモジュールのうちの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定し、設定された前記詳細度に応じた情報を含むログを出力する、処理を実行させることを特徴とするログ出力プログラム

技術分野

0001

本発明は、情報処理装置ログ出力方法およびログ出力プログラムに関する。

背景技術

0002

コンピュータなどの情報処理装置は、処理の実行状況を示すログを出力する機能を備える。出力されたログは、例えば、情報処理装置に障害が発生した場合に、その障害の発生原因究明プログラム修正のために使用される。

0003

また、出力するログのデータ量を抑制するために、必要なログのみを出力する方法が考えられている。例えば、プログラム内に事前に設定されたチェックポイントのログのみを出力する方法がある。

0004

また、ログレベルを変更することで出力するログのデータ量を可変する情報処理装置もある。例えば、異常発生時に自動的にログレベルを切り替えるようにした情報処理装置がある。あるいは、プロセスの実行時にその複製プロセスを生成しておき、複製元のプロセスが異常終了すると、ログレベルを上げて複製プロセスを実行するようにした情報処理装置もある。

先行技術

0005

特開2009−205488号公報
特開2012−18512号公報

発明が解決しようとする課題

0006

プログラム内のどの箇所が実行されたときに障害が発生するかを完全に予測することはできない。このため、事前に設定されたチェックポイントのログのみを出力する上記の方法では、実際に障害が発生したときにログを出力できないことがあるという問題がある。

0007

1つの側面では、本発明は、小さなデータ量で障害発生時のログを出力できる可能性を高めた情報処理装置、ログ出力方法およびログ出力プログラムを提供することを目的とする。

課題を解決するための手段

0008

1つの案では、複数のプログラムモジュールを含むプログラムを実行する情報処理装置が提供される。この情報処理装置は、設定部とログ出力部とを有する。設定部は、複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定する。ログ出力部は、設定された詳細度に応じた情報を含むログを出力する。

0009

また、1つの案では、上記の情報処理装置の処理を実行するログ出力方法、および、上記の情報処理装置の処理をコンピュータに実行させるログ出力プログラムが提供される。

発明の効果

0010

1態様によれば、情報処理装置、ログ出力方法およびログ出力プログラムにおいて、小さなデータ量で障害発生時のログを出力できる可能性が高くなる。

図面の簡単な説明

0011

第1の実施の形態に係る情報処理装置の構成例および動作例を示す図である。
第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。
情報処理装置の処理機能の構成例を示すブロック図である。
監視対象プログラムソースコードの例を示す図である。
ツリー構造の例を示す図である。
実行状況管理テーブルに登録される情報の例を示す図である。
ログレベル設定部の処理例を示すフローチャートである。
ログ出力部の処理例を示すフローチャートである。
第3の実施の形態に係る情報処理システムシステム構成例を示す図である。
ホストサーバの処理機能の構成例を示すブロック図である。
ログレベル設定部による問い合わせ処理例を示すフローチャートである。
実行状況管理テーブルに登録される情報の例を示す図である。
ログレベル設定処理例を示すフローチャートである。

実施例

0012

以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例および動作例を示す図である。図1に示す情報処理装置10は、所定のプログラムを実行するプロセッサ(図示せず)を備える。また、情報処理装置10は、プログラムの実行に伴い、そのプログラムが正常に実行されたかなどのプログラム実行状況を記述したログを出力する機能を備える。

0013

情報処理装置10は、ログレベル設定部11およびログ出力部12を備える。ログレベル設定部11およびログ出力部12は、複数のプログラムモジュールを含むあるプログラム(以下、プログラムP1とする)が情報処理装置10で実行されているときのログ出力を制御するための処理を実行する。複数のプログラムモジュールのそれぞれは、例えば少なくとも1つの関数を含む。また、各プログラムモジュールは、他のプログラムモジュールの実行に応じて呼び出されて実行される。

0014

なお、ログレベル設定部11およびログ出力部12の処理は、上記のプログラムP1とは別のログ出力プログラムを情報処理装置10のプロセッサが実行することで実現される。

0015

ログレベル設定部11は、プログラムP1に含まれる複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいてログレベルを設定する。ログレベルとは、例えば、出力するログに含める情報の詳細度を決定するためのパラメータであり、情報の詳細度が高いほど、出力されるログのデータ量が増加する。なお、ログレベルは、ログを出力するか否かを決定するためのパラメータであってもよい。

0016

ログ出力部12は、ログレベル設定部11によって設定されたログレベルのログ(例えば、ログレベルが示す詳細度に応じた情報を含むログ)を出力する。図1では例として、ログ出力部12はログファイル20を生成し、ログファイル20の中に、設定されたログレベルのログを書き込んでいく。ログファイル20は、例えば、情報処理装置10が備える不揮発性記憶装置に格納される。

0017

このような情報処理装置10によれば、ログレベルの可変機能を備えることで、必要に応じて出力するログのデータ量を小さくすることができるので、ログファイル20のデータ量を抑制することができる。これとともに、呼び出されたプログラムモジュールの実行回数に応じてログレベルが設定されることで、障害発生時において詳細度の高いログを出力できる可能性を高くすることができる。

0018

例えば、ログレベルを変更する方法としては、プログラムP1に含まれるプログラムモジュールごとに、実行時に出力するログレベルをあらかじめ決めておく方法がある。しかし、プログラムP1に含まれるプログラムモジュールのうち、どのプログラムモジュールが実行されたときに障害が発生しやすいかを事前に予想することは難しい。このため、この方法では、実際に障害が発生したときに詳細度の高いログを出力できない可能性がある。

0019

これに対して、情報処理装置10は、プログラムモジュールの実行回数という実際の実行状況に応じて、ログレベルを変更する。この処理によれば、情報処理装置10は、障害発生の解析結果に基づいて、実際に障害が発生しやすい実行状況になったときにログの詳細度を高くすることができる。

0020

例えば、実行回数や実行頻度が高いプログラムモジュールよりも、実行回数や実行頻度が低いプログラムモジュールの方が、実行時に障害が発生しやすい。このため、情報処理装置10は、呼び出されたプログラムモジュールの実行回数に応じてログレベルを設定することで、ログファイル20のデータ量を抑制しつつ、必要な時点で詳細なログを出力できる可能性を高くすることができる。

0021

以下、プログラムP1の実行時におけるログレベル設定部11およびログ出力部12の処理例を示す。この処理例では、情報処理装置10は、上記のプログラムP1に含まれるプログラムモジュールごとに、プログラムP1の実行が開始されてからの実行回数を計数する機能を備えるものとする。そして、計数された実行回数は図1に示す実行回数テーブル13に登録され、この実行回数テーブル13に登録された実行回数をログレベル設定部11が参照するものとする。

0022

実行回数テーブル13には、プログラムモジュールを識別するためのモジュールIDと、実行回数とが対応付けられている。なお、実行回数テーブル13には、プログラムP1の実行開始からの単なる実行回数ではなく、例えば、所定時間ごとの実行回数(すなわち実行頻度)がプログラムモジュールごとに登録されてもよい。

0023

まず、プログラムP1に含まれるあるプログラムモジュール(図示せず)の実行により、プログラムモジュールM1が呼び出されたとする。このとき、ログレベル設定部11は、実行回数テーブル13を参照して、プログラムモジュールM1についての過去の実行回数を判別し、その実行回数を所定のしきい値と比較する。

0024

ここでは、実行回数がしきい値以上であったものとすると、ログレベル設定部11は、ログレベルBを設定する。ログ出力部12は、ログレベルBに応じたログ21をログファイル20に書き込む。なお、ログレベルBは、後述するログレベルAと比較して詳細度の低いログを出力するためのパラメータである。

0025

次に、プログラムモジュールM1の実行により、プログラムモジュールM2が呼び出されたものとする。このとき、ログレベル設定部11は、実行回数テーブル13を参照して、プログラムモジュールM2についての過去の実行回数を判別し、その実行回数を前述のしきい値と比較する。

0026

ここでは、実行回数がしきい値より低かったものとすると、ログレベル設定部11は、前述のログレベルBよりログの詳細度を高くするためのログレベルAを設定する。ログ出力部12は、ログレベルAに応じたログ22をログファイル20に書き込む。ログ22には、例えば、ログ21よりも多数の項目が記述される。

0027

以上の処理により、情報処理装置10は、プログラムモジュールの実行状況に応じて、障害が発生しやすいと考えられる場合に、出力するログの詳細度を高くする。従って、情報処理装置10は、ログファイル20のデータ量を抑制しながらも、障害が発生したときに詳細なログを出力できる可能性を高くすることができる。

0028

〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。情報処理装置100は、例えば、図2に示すようなコンピュータとして実現される。

0029

情報処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific IntegratedCircuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。

0030

RAM102は、情報処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。

0031

バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107および通信インタフェース108がある。

0032

HDD103は、情報処理装置100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。

0033

グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた表示装置液晶表示装置などがある。

0034

入力インタフェース105には、例えば、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから出力される信号をプロセッサ101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネルタブレットタッチパッドトラックボールなどがある。

0035

光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc−Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。

0036

機器接続インタフェース107は、情報処理装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置107aやメモリリーダライタ107bを接続することができる。メモリ装置107aは、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ107bは、メモリカード107cへのデータの書き込み、またはメモリカード107cからのデータの読み出しを行う装置である。メモリカード107cは、カード型の記録媒体である。

0037

通信インタフェース108は、ネットワーク108aなどを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、情報処理装置100の処理機能を実現することができる。なお、図1に示した情報処理装置10も、図2に示したハードウェアを有するコンピュータとして実現することができる。

0038

図3は、情報処理装置の処理機能の構成例を示すブロック図である。情報処理装置100は、アプリケーション処理部110、ログレベル設定部121およびログ出力部122を備える。また、情報処理装置100の記憶装置には、ノード情報131、実行状況管理テーブル132、制御モード133、ログレベル134およびログファイル140が記録される。

0039

アプリケーション処理部110は、ログレベル設定部121およびログ出力部122による実行監視対象とされる所定のアプリケーションプログラム(以下、監視対象プログラムと呼ぶ)が、情報処理装置100のプロセッサ101によって実行されることによって起動する。そして、アプリケーション処理部110の処理は、監視対象プログラムがプロセッサ101によって実行されることで実現される。

0040

一方、ログレベル設定部121およびログ出力部122の処理は、監視対象プログラムの実行を監視するとともにログを出力するための実行監視プログラムが、情報処理装置100のプロセッサ101によって実行されることで実現される。

0041

ログレベル設定部121は、アプリケーション処理部110の実行状況を監視し、その実行状況に応じて、出力するログの詳細度を示すログレベル134を設定する。ログレベル134は、例えば、情報処理装置100のRAM102に記録される。

0042

ノード情報131には、監視対象プログラムを静的解析して得られたツリー構造を示す情報が、あらかじめ登録されている。ログレベル設定部121は、ノード情報131に基づき、ツリー構造に含まれるノードを単位として、アプリケーション処理部110の実行状況を監視する。

0043

具体的には、ログレベル設定部121は、呼び出し元ノードと呼び出し先ノードとの組み合わせである「処理ルート」ごとに実行回数を計数し、実行回数を示す情報を実行状況管理テーブル132に登録する。ログレベル設定部121は、実行状況管理テーブル132に基づき、実行された処理ルートについての実行回数が所定のしきい値より低いとき、ログレベル134を高くする。

0044

制御モード133は、ログレベル134を設定するための動作モードを示し、ログレベル設定部121によって設定される。本実施の形態では、制御モード133は、ログレベル134を自動的に変更するレベル自動変更モードオンオフを示す。レベル自動変更モードがオフの状態では、ログレベル134は所定のレベルに固定化される。ログレベル設定部121は、アプリケーション処理部110の実行が開始された直後の期間では、レベル自動変更モードをオフにする。

0045

ログ出力部122は、設定されたログレベル134に応じたログを、ログファイル140に書き込む。ログファイル140は、ログ出力部122によって作成されて、例えば、情報処理装置100のHDD103、あるいは情報処理装置100の外部の記憶装置に格納される。

0046

図4は、監視対象プログラムのソースコードの例を示す図である。また、図5は、ツリー構造の例を示す図である。
図4に示す監視対象プログラムは、静的解析によって、図5に示すような10個のノードN1〜N10を有するツリー構造で表すことができる。ここで、図4に示すように、ノードN1〜N10のそれぞれは、少なくとも1つの関数を含むプログラムモジュールである。そして、ルートノードであるノードN1以外のノードN2〜N10は、それぞれ他のノードの実行によって呼び出されて実行される。

0047

図3に示したノード情報131には、監視対象プログラムと、ツリー構造に含まれる各ノードとの対応を示す情報が登録される。例えば、ノード情報131には、監視対象プログラムのソースコードにおける、各ノードの先頭行番号が登録される。このようなノード情報131により、ログレベル設定部121は、監視対象プログラムの実行中においてどのノードがどのノードから呼び出されたかを判別することができる。

0048

また、図5において下線を付して示す数字は、呼び出し元ノードと呼び出し先ノードとの組み合わせ(処理ルート)の実行回数を示す。例えば図5において、ノードN1からノードN2への処理ルートの実行回数(すなわち、ノードN1の実行によってノードN2が呼び出された回数)は「3」である。ここで言う実行回数とは、監視対象プログラムの実行が開始されてから現在までに処理ルートが実行された回数である。このような処理ルートごとの実行回数は、ログレベル設定部121によって計数される。

0049

図6は、実行状況管理テーブルに登録される情報の例を示す図である。実行状況管理テーブル132には、ログレベル設定部121によって計数された処理ルートごとの実行回数が登録される。図6において、横方向に対応付けられたレコードが1つの処理ルートに対応する情報を示す。そして、実行状況管理テーブル132には、監視対象プログラムに基づくツリー構造に含まれるすべての処理ルートに対応するレコードが設けられる。

0050

図6において、「呼び出し元ノード」の欄には、呼び出し元のノードの識別番号が登録され、「呼び出し先ノード」の欄には、呼び出し先のノードの識別番号が登録される。「実行回数」の欄には、対応する処理ルートの実行回数の計数値が、ログレベル設定部121によって登録される。

0051

ステータス」の欄には、対応する実行回数の値が所定のしきい値以上であるか否かを示すフラグ情報が、ログレベル設定部121によって登録される。本実施の形態では、ステータスの初期値を「False」とし、実行回数がしきい値以上である場合のステータスを「True」、実行回数がしきい値より低い場合のステータスを「False」とする。

0052

なお、実行状況管理テーブル132には、処理ルートごとに対応付けられる情報として、実行回数の代わりに実行頻度(直近の単位時間における実行回数)が登録されてもよい。この場合、実行頻度が所定のしきい値以上である場合にステータスは「True」とされ、実行頻度がしきい値より低い場合にステータスは「False」とされる。

0053

ところで、プログラムが実行されているとき、頻繁に実行される処理ルートよりも、通常はあまり実行されない処理ルートが実行されたときの方が、障害が発生する可能性が高い。また、通常はあまり実行されない処理ルートの実行時に発生した障害は、テストによって再現することが困難であることが多いため、このような障害の発生原因を究明する際の難易度が高い。

0054

このような観点から、ログレベル設定部121は、処理ルートごとの実行回数の計数結果に基づき、実行回数または実行頻度がしきい値より低い処理ルートが実行されたときに、ログレベルを高くする。これにより、ログファイル140のデータサイズを削減することを可能にしつつ、障害発生時に詳細なログを記録できる確率を高くすることができる。また、原因究明の難易度の高い障害の発生時において、詳細なログを記録できるようになり、原因究明の作業効率を高くすることができる。

0055

図7は、ログレベル設定部の処理例を示すフローチャートである。この図7の処理は、例えば、監視対象プログラムの実行が開始されてアプリケーション処理部110が起動したときに実行される。

0056

なお、この図7では例として、ログレベル134を高レベル低レベルの2段階に設定可能であるものとする。例えば、log4j(Apache Software Foundationの商標)で規定されたログレベルのうち、“debug”レベル(高レベル)と“information”レベル(低レベル)のいずれかに設定可能とする。

0057

[ステップS11]ログレベル設定部121は、レベル自動変更モードをオフにして初期化する。
[ステップS12]ログレベル設定部121は、監視対象プログラムの実行を監視し、あるノードから次のノードが呼び出されたかを判定する。次のノードが呼び出された場合にはステップS14の処理が実行され、次のノードが呼び出されていない場合にはステップS13の処理が実行される。

0058

[ステップS13]ログレベル設定部121は、監視対象プログラムの実行が終了したかを判定する。実行が終了した場合、ログレベル設定部121(およびログ出力部122)の処理が終了する。一方、実行が終了していない場合、ステップS12の処理が実行される。

0059

[ステップS14]ログレベル設定部121は、実行状況管理テーブル132において、該当処理ルート(すなわち、ステップS12における呼び出し元ノードおよび呼び出し先ノードに対応する処理ルート)に対応付けられた実行回数を「1」だけインクリメントする。また、ログレベル設定部121は、インクリメント後の実行回数を所定のしきい値と比較し、その比較結果に応じて、実行回数に対応付けられたステータスを必要に応じて更新する。ログレベル設定部121は、実行回数がしきい値以上である場合にはステータスを「False」にし、実行回数がしきい値より小さい場合にはステータスを「True」にする。

0060

[ステップS15]ログレベル設定部121は、現在、レベル自動変更モードがオンであるかを判定する。レベル自動変更モードがオンである場合、ステップS16の処理が実行され、オフである場合、ステップS19の処理が実行される。

0061

[ステップS16]ログレベル設定部121は、実行状況管理テーブル132において、該当処理ルートに対応付けられたステータスが「True」か「False」かを判定する。ステータスが「True」の場合、ステップS18の処理が実行され、ステータスが「False」の場合、ステップS17の処理が実行される。

0062

[ステップS17]ログレベル設定部121は、ログレベル134を高レベルに設定する。この後、ステップS12の処理が実行される。
[ステップS18]ログレベル設定部121は、ログレベル134を低レベルに設定する。この後、ステップS12の処理が実行される。

0063

なお、ログレベル134を3段階以上に設定可能とする場合には、例えば、ステップS18で設定されるログレベル134より、ステップS17で設定されるログレベル134が高くされる(すなわち、ログのデータ量が大きくなるように設定される)ようにすればよい。例えば、ログレベル134が高いほど出力されるログの詳細度が上がるものとした場合、ステップS17では、所定段階以上のログレベル134が設定され、ステップS18では、所定段階より低いログレベル134が設定される。

0064

[ステップS19]ログレベル設定部121は、実行状況管理テーブル132に登録された処理ルートのうち、ステータスが「True」である処理ルートが所定割合以上であるかを判定する。所定割合以上である場合、ステップS20の処理が実行され、所定割合未満である場合、ステップS18の処理が実行される。

0065

[ステップS20]ログレベル設定部121は、レベル自動変更モードをオフからオンに更新する。
上記の図7の処理によれば、ログレベル設定部121は、あるノードから次のノードが呼び出されたとき、該当処理ルートの実行回数がしきい値以上であれば、ログレベル134を低レベルにして、出力されるログのデータ量を抑制する(ステップS18)。一方、ログレベル設定部121は、該当処理ルートの実行回数がしきい値より小さい場合には、ログレベル134を高レベルにする(ステップS17)。これにより、障害が発生しやすい処理ルートの実行時において出力されるログの詳細度が高くなり、障害発生時に詳細なログを記録できる可能性を高くすることができる。

0066

ただし、ログレベル設定部121は、アプリケーション処理部110の処理が開始された初期期間においては、実行状況管理テーブル132に登録された実行回数から、各処理ルートが頻繁に実行されるものか否かを正確に判定できない。初期期間においては、各処理ルートの実行回数の値は全体として小さくなり、また、実行回数がしきい値以上になる処理ルートが現れたとしても、その数は少数になる。このため、初期期間において実行回数を基にログレベルが決定される場合には、実行された処理ルートが本当に頻繁に実行されるものか否かに関係なく、大量のログが出力される可能性がある。

0067

そこで、ログレベル設定部121は、ステータスが「True」である処理ルートが所定割合未満である場合には(ステップS19:No)、レベル自動変更モードをオフのままにして、ログレベル134の設定を低レベルに固定する(ステップS18)。このような処理により、初期期間においてむやみに大量のログが出力される事態を回避できる。

0068

なお、前述のように、実行状況管理テーブル132には、実行回数の代わりに実行頻度が登録されてもよい。この場合、図7の処理は、ステップS14において実行回数の代わりに実行頻度が更新されるように変形される。

0069

図8は、ログ出力部の処理例を示すフローチャートである。この図8の処理は、図7と同様に、例えば、監視対象プログラムの実行が開始されてアプリケーション処理部110が起動したときに実行される。

0070

[ステップS31]ログ出力部122は、監視対象プログラムの実行が開始されると、ログファイル140を作成して、情報処理装置100のHDD103に格納する。これ以後、ログ出力部122は、監視対象プログラムの実行を監視する。

0071

[ステップS32]ログ出力部122は、ログレベル設定部121によって設定されたログレベル134を、RAM102から読み込む。
[ステップS33]ログ出力部122は、読み込んだログレベル134に応じたログを、ログファイル140に書き込む。ログには、例えば、日時、ログレベル、監視対象プログラムの実行に伴って計算されたデータの値、処理が正常に実行されたか否かを示す情報などが含まれる。そして、同じ処理に関するログを比較した場合、ログレベル134が高いほど出力されるログのデータ量が大きくなる。例えば、ログレベル134が高いほど、ログに含まれる項目の数が多くなる。

0072

ステップS32,S33の処理は、例えば、ノードが実行されるたびに行われるなど、所定のタイミングで繰り返し実行される。
〔第3の実施の形態〕
第3の実施の形態では、図1に示した情報処理装置10を、仮想マシンを実現するホストサーバとして実現した場合の例を示す。図9は、第3の実施の形態に係る情報処理システムのシステム構成例を示す図である。

0073

情報処理システム200は、ホストサーバ201と、複数のクライアント202と、管理端末203とを含む。ホストサーバ201と各クライアント202、および、ホストサーバ201と管理端末203とは、ネットワーク204によって相互に接続されている。なお、ホストサーバ201、各クライアント202および管理端末203は、いずれも図2に示したようなハードウェア構成を有するコンピュータとして実現可能である。

0074

ホストサーバ201は、Java(Oracle Corporationの登録商標)仮想マシンを構築し、Java仮想マシン上で各種のアプリケーションプログラムを実行することで、各クライアント202に対して各種のサービスを提供する。

0075

クライアント202は、ホストサーバ201が提供するサービスを受けるユーザによって操作される端末装置であり、ユーザの操作に応じてホストサーバ201にアクセスする。

0076

管理端末203は、ホストサーバ201の管理者によって操作される端末装置である。管理端末203は、例えば、管理者からの操作に応じてホストサーバ201にアクセスし、ホストサーバ201に記録されたログファイルを読み出して、表示装置(図示せず)に表示する。管理者は、表示されたログファイルの内容を基に、ホストサーバ201において発生した障害に対処することができる。

0077

図10は、ホストサーバの処理機能の構成例を示すブロック図である。なお、図10では、図3に対応する構成要素には同じ符号を付して示し、その説明を省略する。
ホストサーバ201は、APS(Application Server)処理部220およびJVM(Java Virtual Machine)処理部230を備える。また、ホストサーバ201の記憶装置には、アプリケーションプログラム210、ノード情報131a、実行状況管理テーブル132a、制御モード133、ログレベル134およびログファイル140が記録される。

0078

アプリケーションプログラム210は、第2の実施の形態における監視対象プログラムに対応するものである。アプリケーションプログラム210は、Java仮想マシン上で実行される。

0079

JVM処理部230の処理は、ホストサーバ201のプロセッサ(図示せず)がJVMプログラムを実行することで実現される。JVM処理部230は、Java仮想マシンとしての処理を実行する。JVM処理部230は、APS処理部220を介してアプリケーションプログラム210のソースコードを取得して実行し、アプリケーションプログラム210に従ったJava仮想マシンとしての処理を行う。

0080

APS処理部220の処理は、ホストサーバ201のプロセッサがAPSプログラムを実行することで実現される。APS処理部220は、Java仮想マシン上でのアプリケーションプログラム210の実行状況を監視し、ログを出力する。APS処理部220は、ログレベル設定部121aおよびログ出力部122を有している。

0081

ログレベル設定部121aは、図3におけるログレベル設定部121と同様に、アプリケーションプログラム210を静的解析して得られるツリー構造のノードを単位として、アプリケーションプログラム210の実行を監視する。また、ノード情報131aには、アプリケーションプログラム210と、ツリー構造に含まれる各ノードとの対応を示す情報が登録される。ここで、本実施の形態におけるノードはJavaメソッドであり、ログレベル設定部121aは、ノード情報131aに基づき、Javaメソッドを単位としてアプリケーションプログラム210の実行を監視する。Javaメソッドは、アプリケーションプログラム210に含まれるプログラムモジュールである。

0082

ログレベル設定部121aは、監視対象であるアプリケーションプログラム210の実行状況に応じて、出力するログの詳細度を示すログレベル134を出力する。ただし、ログレベル設定部121aは、図3におけるログレベル設定部121とは異なり、JVM処理部230が備えるJavaメソッドの実行管理機能を利用して、アプリケーションプログラム210の実行状況を判別してログレベル134を設定する。

0083

JVM処理部230は、アプリケーションプログラム210を実行する際に、次のような2つの方式を用いる。1つは、アプリケーションプログラム210を変換して得られる中間コードバイトコード)を逐次解釈して実行するインタープリタ方式である。もう1つは、中間コードを所定範囲ごとにネイティブコードコンパイルしてから実行するJIT(Just In Time)コンパイル方式である。

0084

JVM処理部230は、このようなJITコンパイル方式でアプリケーションプログラム210を実行するJITコンパイル部231を備える。本実施の形態において、JITコンパイル部231は、中間コードをJavaメソッドごとにネイティブコードに変換する。

0085

JVM処理部230は、基本的にはインタープリタ方式でアプリケーションプログラム210を実行する。その一方で、JITコンパイル部231は、Javaメソッドごとに実行回数を計数することなどにより、各Javaメソッドの実行状況を監視する。JITコンパイル部231は、実行状況の解析結果に基づいて、ネイティブコード232に変換すべきJavaメソッドを判別する。基本的に、繰り返し実行される数が多いJavaメソッドほど、JITコンパイル方式を用いる方が実行速度が高くなる。このため、JITコンパイル部231は、例えば、実行回数または実行頻度がしきい値以上になったJavaメソッドを、ネイティブコード232に変換すべきJavaメソッドと判定する。

0086

そして、JITコンパイル部231は、ネイティブコード232に変換すべきと判定されたJavaメソッドが呼び出されたとき、そのJavaメソッドをネイティブコード232に変換して実行する。また、JITコンパイル部231は、変換したネイティブコード232をホストサーバ201の記憶装置(例えばRAM)に格納しておき、それ以後、ネイティブコード232に変換済みのJavaメソッドが呼び出された場合には、変換済みのネイティブコード232を実行する。なお、JITコンパイル部231は、ネイティブコード232に変換すべきと判定されたJavaメソッドを、そのJavaメソッドが次に呼び出される前にネイティブコード232に変換してRAMに格納しておいてもよい。

0087

ログレベル設定部121aは、各Javaメソッドがネイティブコード232に変換されたかを問い合わせ、その問い合わせの結果を実行状況管理テーブル132aに登録する。そして、ログレベル設定部121aは、Javaメソッドが呼び出されたとき、呼び出されたJavaメソッドがネイティブコード232に変換されていない場合に、そのJavaメソッドは頻繁に実行されていないと判定して、ログレベル134を高くする。

0088

ログ出力部122は、図3のログ出力部122と同様に、設定されたログレベル134に応じたログを、ログファイル140に書き込む。
図11は、ログレベル設定部による問い合わせ処理例を示すフローチャートである。ログレベル設定部121aは、図11の処理を、例えば一定時間ごとに繰り返し実行する。

0089

[ステップS41]ログレベル設定部121aは、JITコンパイル部231に対して、Javaメソッドごとのネイティブコード232への変換状況を問い合わせる。例えば、Oracle CorporationのJVMプログラムである“Java HotSpot Server VM”では、“PrintCompilation”コマンドを用いて、ネイティブコード232へのコンパイル要求が発生したJavaメソッドの識別名を取得することができる。

0090

[ステップS42]ログレベル設定部121aは、JITコンパイル部231から、ネイティブコード232に変換されたJavaメソッドの識別名を取得する。
[ステップS43]ログレベル設定部121aは、実行状況管理テーブル132aに対して、ネイティブコード232に変換されたか否かを示す情報をJavaメソッドごとに登録して、実行状況管理テーブル132aを更新する。

0091

図12は、実行状況管理テーブルに登録される情報の例を示す図である。実行状況管理テーブル132aには、アプリケーションプログラム210のツリー構造に含まれるノードごとにステータスが登録される。各ノードはJavaメソッドに対応している。ステータスは、対応するノードがネイティブコード232に変換されたか否かを示す。本実施の形態では、ステータスの初期値を「False」とし、ネイティブコード232に変換された場合のステータスを「True」、変換されていない場合のステータスを「False」とする。

0092

図13は、ログレベル設定処理例を示すフローチャートである。この図13の処理は、例えば、アプリケーションプログラム210の実行が開始されたときに実行される。なお、この図13では図7と同様に、ログレベル134を高レベルと低レベルの2段階に設定可能であるものとする。

0093

[ステップS51]ログレベル設定部121aは、レベル自動変更モードをオフにして初期化する。
[ステップS52]ログレベル設定部121aは、アプリケーションプログラム210の実行を監視し、あるノードから次のノードが呼び出されたかを判定する。ここで言うノードとはJavaメソッドに対応する。次のノードが呼び出された場合にはステップS54の処理が実行され、次のノードが呼び出されていない場合にはステップS53の処理が実行される。

0094

[ステップS53]ログレベル設定部121aは、アプリケーションプログラム210の実行が終了したかを判定する。実行が終了した場合、ログレベル設定部121a(およびログ出力部122)の処理が終了する。一方、実行が終了していない場合、ステップS52の処理が実行される。

0095

[ステップS54]ログレベル設定部121aは、現在、レベル自動変更モードがオンであるかを判定する。レベル自動変更モードがオンである場合、ステップS55の処理が実行され、オフである場合、ステップS58の処理が実行される。

0096

[ステップS55]ログレベル設定部121aは、実行状況管理テーブル132aにおいて、該当ノード(すなわち、ステップS52において呼び出されたノード)に対応付けられたステータスが「True」か「False」かを判定する。ステータスが「True」の場合、ステップS57の処理が実行され、ステータスが「False」の場合、ステップS56の処理が実行される。

0097

[ステップS56]ログレベル設定部121aは、ログレベル134を高レベルに設定する。この後、ステップS52の処理が実行される。
[ステップS57]ログレベル設定部121aは、ログレベル134を低レベルに設定する。この後、ステップS52の処理が実行される。

0098

[ステップS58]ログレベル設定部121aは、実行状況管理テーブル132aに登録されたノードのうち、ステータスが「True」であるノードが所定割合以上であるかを判定する。所定割合以上である場合、ステップS59の処理が実行され、所定割合未満である場合、ステップS57の処理が実行される。

0099

[ステップS59]ログレベル設定部121aは、レベル自動変更モードをオフからオンに更新する。
上記の図13によれば、ログレベル設定部121aは、ノードが呼び出されたとき、そのノードがネイティブコード232に変換されている場合には、ログレベル134を低レベルにして、出力されるログのデータ量を抑制する(ステップS57)。一方、ログレベル設定部121aは、呼び出されたノードがネイティブコード232に変換されていない場合には、そのノードは頻繁に実行されてはいないと判定して、ログレベル134を高レベルにする(ステップS56)。これにより、障害が発生しやすい処理ルートの実行時において出力されるログの詳細度が高くなり、障害発生時に詳細なログを記録できる可能性を高くすることができる。

0100

また、ログレベル設定部121aは、アプリケーションプログラム210の実行が開始された初期期間においては、ノードがネイティブコード232に変換されたか否かという情報から、各処理ルートが頻繁に実行されるものか否かを正確に判定できない。そこで、ログレベル設定部121aは、ステータスが「True」であるノードが所定割合未満である場合には(ステップS58:No)、レベル自動変更モードをオフのままにして、ログレベル134の設定を低レベルに固定する(ステップS57)。これにより、初期期間においてむやみに大量のログが出力される事態を回避できる。

0101

なお、上記の図11図13の処理では、ログレベル設定部121aは、Javaメソッドがネイティブコード232に変換されたかを、そのJavaメソッドが呼び出される前に実行状況管理テーブル132aに登録した。しかし、他の方法として、ログレベル設定部121aは、Javaメソッドが呼び出されたときにJITコンパイル部231に問い合わせを行い、その応答結果から、呼び出されたJavaメソッドがネイティブコード232に変換されたかを判定してもよい。

0102

以上の第3の実施の形態では、ログレベル設定部121aは、JITコンパイル部231が備えている機能を利用して、ノードが頻繁に実行されているかを判定し、その判定結果からログレベル134を設定する。このため、APS処理部220の処理を単純化して、その処理負荷を軽減することができ、また、APS処理部220の処理を実現するためのプログラムのデータ容量を削減することができる。

0103

なお、上記の各実施の形態に示した装置(例えば、情報処理装置10,100およびホストサーバ201)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスクFD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM、CD−R/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。

0104

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。

0105

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。

0106

以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数のプログラムモジュールを含むプログラムを実行する情報処理装置において、
前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定する設定部と、
設定された前記詳細度に応じた情報を含むログを出力するログ出力部と、
を有することを特徴とする情報処理装置。

0107

(付記2) 前記複数のプログラムモジュールのうち、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールとの組み合わせごとに、実行された回数または実行頻度を計数する計数部をさらに有し、
前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールとその呼び出し元のプログラムモジュールとの組み合わせについての実行回数または実行頻度を所定のしきい値と比較し、実行回数または実行頻度が前記しきい値より低い場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記1記載の情報処理装置。

0108

(付記3) 前記設定部は、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールのすべての組み合わせのうち、実行回数または実行頻度が前記しきい値以上である組み合わせの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記2記載の情報処理装置。

0109

(付記4) 前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合には、出力されるログの前記詳細度を高くすることを特徴とする付記1記載の情報処理装置。

0110

(付記5) 前記設定部は、前記複数のプログラムモジュールのうち、実行回数または実行頻度が前記しきい値以上であるプログラムモジュールの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記4記載の情報処理装置。

0111

(付記6) 前記複数のプログラムモジュールのそれぞれについて、実行回数に基づいてネイティブコードにコンパイルするかを決定し、コンパイルすると決定したプログラムモジュールをネイティブコードにコンパイルしてから実行する仮想マシン処理部をさらに有し、
前記設定部は、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールがネイティブコードにコンパイルされたかを判定し、呼び出されたプログラムモジュールがネイティブコードにコンパイルされていない場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記1記載の情報処理装置。

0112

(付記7) 複数のプログラムモジュールを含むプログラムを実行する情報処理装置におけるログ出力方法であって、
前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定し、
設定された前記詳細度に応じた情報を含むログを出力する、
ことを特徴とするログ出力方法。

0113

(付記8) 前記複数のプログラムモジュールのうち、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールとの組み合わせごとに、実行された回数または実行頻度を計数する処理をさらに含み、
前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールとその呼び出し元のプログラムモジュールとの組み合わせについての実行回数または実行頻度を所定のしきい値と比較し、実行回数または実行頻度が前記しきい値より低い場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記7記載のログ出力方法。

0114

(付記9) 前記詳細度の設定では、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールのすべての組み合わせのうち、実行回数または実行頻度が前記しきい値以上である組み合わせの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記8記載のログ出力方法。

0115

(付記10) 前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合には、出力されるログの前記詳細度を高くすることを特徴とする付記7記載のログ出力方法。

0116

(付記11) 前記詳細度の設定では、前記複数のプログラムモジュールのうち、実行回数または実行頻度が前記しきい値以上であるプログラムモジュールの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記10記載のログ出力方法。

0117

(付記12) 前記複数のプログラムモジュールのそれぞれについて、実行回数に基づいてネイティブコードにコンパイルするかを決定し、コンパイルすると決定したプログラムモジュールをネイティブコードにコンパイルしてから実行する処理をさらに含み、
前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールがネイティブコードにコンパイルされたかを判定し、呼び出されたプログラムモジュールがネイティブコードにコンパイルされていない場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記7記載のログ出力方法。

0118

(付記13)コンピュータに、
前記コンピュータが実行する所定のプログラムに含まれる複数のプログラムモジュールのうちの1つが呼び出されたとき、呼び出されたプログラムモジュールの過去の実行回数に基づいて、ログに含める情報の詳細度を設定し、
設定された前記詳細度に応じた情報を含むログを出力する、
処理を実行させることを特徴とするログ出力プログラム。

0119

(付記14) 前記コンピュータに、前記複数のプログラムモジュールのうち、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールとの組み合わせごとに、実行された回数または実行頻度を計数する処理をさらに実行させ、
前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールとその呼び出し元のプログラムモジュールとの組み合わせについての実行回数または実行頻度を所定のしきい値と比較し、実行回数または実行頻度が前記しきい値より低い場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記13記載のログ出力プログラム。

0120

(付記15) 前記詳細度の設定では、呼び出し元のプログラムモジュールと呼び出し先のプログラムモジュールのすべての組み合わせのうち、実行回数または実行頻度が前記しきい値以上である組み合わせの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記14記載のログ出力プログラム。

0121

(付記16) 前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールの実行回数または実行頻度が所定のしきい値より低い場合には、出力されるログの前記詳細度を高くすることを特徴とする付記13記載のログ出力プログラム。

0122

(付記17) 前記詳細度の設定では、前記複数のプログラムモジュールのうち、実行回数または実行頻度が前記しきい値以上であるプログラムモジュールの割合が所定値より低い場合には、出力されるログの前記詳細度を一定値以下に抑制することを特徴とする付記16記載のログ出力プログラム。

0123

(付記18) 前記コンピュータは、前記複数のプログラムモジュールのそれぞれについて、実行回数に基づいてネイティブコードにコンパイルするかを決定し、コンパイルすると決定したプログラムモジュールをネイティブコードにコンパイルしてから実行し、
前記詳細度の設定では、前記複数のプログラムモジュールの1つが呼び出されたとき、呼び出されたプログラムモジュールがネイティブコードにコンパイルされたかを判定し、呼び出されたプログラムモジュールがネイティブコードにコンパイルされていない場合には、出力されるログの前記詳細度を高くする、
ことを特徴とする付記13記載のログ出力プログラム。

0124

10情報処理装置
11ログレベル設定部
12ログ出力部
13実行回数テーブル
20ログファイル
21,22ログ
M1,M2 プログラムモジュール

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ