(57)【特許請求の範囲】
【請求項１】
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御装置であって、
前記不正動作情報は、不正動作が検出されたログの識別情報を含み、
前記ログ生成情報は、プログラムにおけるログ出力処理が挿入された場所と、挿入されたログ出力処理に対応するログの識別情報とを含み、
前記不正動作情報と前記ログ生成情報とに基づいて、クライアントから要求されたプログラムにおいて不正動作が検出されたログの出力箇所を特定し、前記特定した箇所にログ出力処理を挿入する
ログ出力制御装置。
【請求項２】
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御装置であって、
クライアントのユーザ識別情報を取得し、
クライアントのユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
ログ出力制御装置。
【請求項３】
クライアントのユーザ識別情報を取得し、
クライアントのユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
請求項１に記載のログ出力制御装置。
【請求項４】
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムにログ出力処理を挿入することを決定する
請求項２又は請求項３に記載のログ出力制御装置。
【請求項５】
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムのログ出力処理の挿入範囲を変更する
請求項２又は請求項３又は請求項４に記載のログ出力制御装置。
【請求項６】
クライアントから受信したリクエストのパターンに基づいて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
請求項１から請求項５のいずれかに記載のログ出力制御装置。
【請求項７】
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御方法であって、
前記不正動作情報は、不正動作が検出されたログの識別情報を含み、
前記ログ生成情報は、プログラムにおけるログ出力処理が挿入された場所と、挿入されたログ出力処理に対応するログの識別情報とを含み、
前記不正動作情報と前記ログ生成情報とに基づいて、クライアントから要求されたプログラムにおいて不正動作が検出されたログの出力箇所を特定し、前記特定した箇所にログ出力処理を挿入する
ログ出力制御方法。
【請求項８】
コンピュータに、
クライアントのユーザ識別情報を取得する処理と、
クライアントの前記ユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する処理と、
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ出力制御装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ポータル製品ではAjax（Asynchronous JavaScript（登録商標） + XML）、HTML5、CSS3（Cascading Style Sheets, level 3）やJavaScriptライブラリの普及により、サーバサイドで提供していた機能をクライアントサイドにシフトさせ、クライアントで高度な機能を実現することが主流になっている。これにより、実行されるクライアントに合わせた処理を実施することができるため、きめ細かい描画提供等を実現することが出来るようになった。また、サーバ側の処理をクライアントに移すことで、利用ユーザが増加した場合でもクライアント側に負荷を分散させることができる。このようにクライアント側に処理が移ることでメリットを享受できる一方で、いくつかの問題も顕在化している。【０００３】
スマートフォンやタブレットの普及により、ＰＣ（Personal Computer）環境だけでなく、モバイルデバイス環境を視野に入れた開発が必要になり、クライアントサイドスクリプトを提供するシステムはプラットフォーム拡大の対応が急務となっている。加えて、ブラウザは多様化する一方であるが、それぞれのブラウザの振る舞いの違いなどを吸収したクライアントの開発/テスト環境は十分整備されていない。ＯＳＳ（Open Source Software）で提供されるライブラリを用いることで、ブラウザの差異を一部吸収することは可能ではあるが、ライブラリの利用で１００％補填できるものではないため、開発者にはブラウザごとの振る舞いに合わせたコーディングといった豊富な知識が求められる。クライアント側に期待される処理が複雑化してきているため、障害発生時にクライアント環境のデバッグ情報をどこまで詳細に取得できるかが、障害解析時の要となる。【０００４】
このようなクライアントの障害解析を容易にするため、クライアントではサーバに障害分析用ログを送信することが行われている。サーバ側に送信することでデバッグ情報の収集が可能であるが、ユーザ数が増大するに従って、サーバに送信されるログの量が爆発的に増加する。大規模システムでは全てのクライアントから一様にログ送信を行った場合、サーバやネットワークが高負荷になるため、自システムだけでなく他システムへの影響を与えることになる。そのため、クラウド上での大規模システムでの運用が難しくなるといった課題がある。【０００５】
例えば特許文献１には、端末情報を利用して、障害が発生した端末のログのみを収集することにより、ログの記録量が膨大になることを回避するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１１７９３４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１のシステムのようにログ収集対象を障害が発生したクライアントに限定することで、ログの記録量を多少は抑えることができる。しかし、近年は、サーバサイドで提供していた機能をクライアントサイドにシフトさせることが主流となっており、このような状況では、障害が発生するクライアントは大きく増加するため、それら全てのクライアントから一様にログ送信を行った場合には依然としてサーバやネットワークが高負荷になってしまう。【０００８】
本発明は、上記問題点に鑑みてなされたもので、クライアントにおけるログ出力処理を効率よく制御することができるログ出力制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御装置である。【００１０】
本発明は、クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御方法である。【００１１】
本発明は、コンピュータに、クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御する処理を実行させるプログラムである。
【発明の効果】
【００１２】
本発明によれば、クライアントにおけるログ出力処理を効率よく制御することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の概念図である。
【図２】図２は本発明の第１の実施形態の構成図である。
【図３】図３はログ生成情報を例示する図である。
【図４】図４は不正動作情報を例示する図である。
【図５】図５はイベント履歴を例示する図である。
【図６】図６は第１の実施形態のシステムの構成要素と各操作処理の流れを示した図である。
【図７】図７はスクリプトファイルに障害解析用のログ出力処理を埋め込む処理を説明するための図である。
【図８】図８はログ出力処理挿入処理を説明するためのフローチャートである。
【図９】図９はイベント履歴書き込み処理を説明するためのフローチャートである。
【図１０】図１０は不正情報書き込み処理を説明するためのフローチャートである。
【図１１】図１１はログ出力処理が挿入されたスクリプトを例示する図である。
【図１２】図１２は図１は本発明の第２の実施形態の構成図である。
【図１３】図１３はユーザの識別を行うためのルールを説明するための図である。
【図１４】図１４は第２の実施形態における出力結果の例を示す図である。
【図１５】図１５は本発明の第３の実施形態の構成図である。
【発明を実施するための形態】
【００１４】
本発明は、図１に示すように、クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御するログ出力制御装置に関する。
【００１５】
（第１の実施形態）
図２は、本発明の第１の実施形態の構成図である。
【００１６】
第１の実施形態は、ログ出力制御装置１００と、スクリプト実行装置２００とを備える。本実施形態では、ログ出力制御装置１００はポータルサーバであり、スクリプト実行装置はＷｅｂブラウザおよびスクリプト実行エンジン等を備えるクライアントである。これらはインターネット等のネットワークにより接続される。
【００１７】
以下、本発明の主要な部分であるサーバ側のログ出力制御装置１００を中心に説明する。
【００１８】
ログ出力制御装置は１００は、データ送受信部１１０、データ解析部１２０、ログ処理部１３０、記憶管理部１４０を備える。
【００１９】
データ送受信部１１０は、リクエスト受信部１１１、ログ受信部１１２、レスポンス送信部１１３を含む。
【００２０】
データ解析部１２０は、ログ解析部１２１、不正動作解析部１２２を含む。ログ解析部１２１では、記録されたログメッセージからログＩＤを割出し、イベント履歴に登録する。不正動作解析部１２２は、イベント履歴に登録されたメッセージ内にエラー（error）が設定されていた場合に不正情報を検出する。
【００２１】
ログ処理部１３０は、図１のログ出力制御部に主に対応するものであり、ログ出力箇所決定部１３１、ログ出力処理埋め込み部１３２を含む。ログ出力箇所決定部１３１は、不正動作情報と過去のログ出力に関するログ生成情報を基に、クライアントサイドに供給するスクリプトにおけるログの出力箇所を決定する。ログ出力処理埋め込み部１３２は、実際にログ出力処理を埋め込むためのものである。
【００２２】
記憶管理部１４０には、ログ生成情報１４１、不正動作情報１４２、イベント履歴情報１４３が記憶される。ログ生成情報１４１は、スクリプトに挿入されたログ出力処理に関する情報であり、図３に例示するように、ログＩＤ、挿入場所(スクリプトのファイル名やＩＤ、行数)、リクエストＵＲＬを含む情報である。不正動作情報は、ログに基づいて検出されたスクリプトの不正動作に関する情報であり、図４に例示するように、不正動作が検出されたログのログＩＤと不正動作内容を含む情報である。イベント履歴は、クライアントから受信したログに関する情報であり、図５に例示するように、ログＩＤと出力ログメッセージを含む。
【００２３】
次に本実施形態の動作について説明する。
【００２４】
図６は本システムの構成要素と各操作処理の流れを図示したものである。
【００２５】
まず、スクリプトファイルに障害解析用のログ出力処理を埋め込む処理について、図７のフローチャート参照して説明する。
【００２６】
クライアント（スクリプト実行装置２００）のＷｅｂブラウザは、ポータルサーバ（ログ出力制御装置１００）にJavaScriptのソースを含むサーバリソースの取得用のHTTPリクエストを送信する（ａ１）。
【００２７】
ポータルサーバはHTTPリクエストを受信する（ａ２）と、クライアントに送信するスクリプト言語の判定を行い（ａ３）、JavaScript用のログ出力処理挿入処理（ａ４）を実行する。
【００２８】
ここで、（ａ４）のログ出力処理挿入処理の詳細を図８を参照して説明する。
【００２９】
ログ出力処理挿入処理では、まずログ生成情報（Ｂ１）、不正動作情報（Ｂ２）を読み込み、不正動作情報があれば、不正動作情報のログＩＤから、同一のログＩＤのログ生成情報を検索し、JavaScriptの何行目に埋め込まれたログ出力処理の実行結果であるかを特定し、スクリプトにおける障害発生場所を発見する（ｂ１）。
【００３０】
次に実際にリクエスト対象のスクリプトファイルを読み込み、ログ出力処理の埋め込み箇所を決定する（ｂ２）。先ほど特定した障害検出箇所を中心にログ出力箇所を増やす。このとき、イベント履歴情報［ログＩＤ］（Ｂ３）を用いて、スクリプトの関数が実行済かどうかを判断する。イベント履歴情報に実行実績はあるが、不正動作情報を参照すると障害が発生していない関数では、ログ出力処理を少なめに減らす設定する。ログ出力処理の挿入箇所を決めると、処理内容に応じてログメッセージ[関数名 start/end/error/変数やシグネチャなどの付加情報]を作成し、ログ出力処理を挿入する（ｂ４−ｂ７）。ログ出力処理の挿入が終わるとサーバへのログ送信処理を挿入する（ｂ８）。このとき、ログ生成情報テーブルにもログ生成情報（Ｂ１）の記録を行う。
【００３１】
そして、ログ出力処理を埋め込んだスクリプトをクライアントに送信する（図７：ａ５）。
【００３２】
次に、イベント履歴書き込み処理について図９を用いて説明する。
【００３３】
ポータルサーバからスクリプト（JavaScript）を含むレスポンスデータを受信する（ｃ１）と、クライアントのブラウザは、ＨＴＭＬとJavaScriptスクリプトの解析、実行を行う（ｃ２）。ブラウザでは更新のあったJavaScriptのみ再読み込みを行い、その他のJavaScriptファイルについてはキャッシュを利用する。再読み込みを行うと、もとの定義済の関数は新たなログ出力処理が記載された関数によって上書きされる。実行したスクリプトにログ送信処理が記載されている（ｃ３）場合、ポータルサーバに対してログの送信を行う（ｃ５）。
【００３４】
ポータルサーバは、ログを受信する（ｃ６）と、受信したログを解析し（ｃ７）、解析結果をイベント履歴情報（Ｃ２）に書き込む（Ｃ８）。
【００３５】
次に、不正情報書き込み処理について図１０を用いて説明する。
【００３６】
不正情報の検出には不正動作解析部１２２を用いる。不正動作解析部１２２は、イベント履歴を読み込み（ｄ１）、イベントがあれば（ｄ２）、期待した結果、すなわち正しい結果かどうかを判断する（ｄ３）。この判断処理では、イベントと正常な結果とを対応付けた判断基準データを予め格納しておき、不正動作解析部１２２が、この判断基準データを参照して判断してもよい。また、管理者が判断を行い、不正動作解析部１２２がこの管理者による判断結果の入力を受け付けてもよい。
【００３７】
期待した結果、すなわち正しい結果でない場合、そのログのログＩＤと不正動作内容を不正動作情報［ログＩＤ］として記録する（ｄ４）。ログ出力処理が挿入されたスクリプトの例を図１１に示す。
【００３８】
本実施形態による効果について説明する。
【００３９】
第一の効果は、障害時に必要なデバッグログの情報量を落とさずにログ出力変更できることにある。その理由はログ出力箇所決定部１３１とログ出力処理埋め込み部１３２によってログ出力箇所を決定し、ログ出力処理を埋め込むことができるからである。第二の効果は、プログラムの実行実績に合わせてログ出力個所が変更できることにある。その理由はログ生成情報１４１と不正動作情報１４２を用いることで、不具合発生箇所に対して、ログ出力箇所決定部１３１とログ出力処理埋め込み部１３２によってログ出力処理を埋め込むことができるからである。
【００４０】
（第２の実施形態）
ポータル製品ではユーザ毎に管理者や一般ユーザのロールが割り当てられ、各ロールの権限(役割)によって操作範囲や操作の特性が異なる。例えば管理者ロールに割り当てられたユーザは管理系の操作を実施し、一般ユーザロールに割り当てられたユーザは参照系の操作が中心になる。ログ出力箇所の分析時にリクエストを送信したユーザのロール情報を用いることで、出力箇所決定時の絞り込み精度を上げることができる。
【００４１】
図１２は、本発明の第２の実施形態の構成図である。
【００４２】
本実施の形態は、図６におけるリクエスト受信部１１１による処理の後にユーザ識別部１２３による処理を追加したものである。ユーザ識別部１２３は、あらかじめ定義されたユーザ識別ルール情報を用いてユーザ識別を行う。ユーザ識別ルール情報１４４は記憶部管理部１４０に格納される。ユーザ識別部１２３はインターフェースに従い、メソッドを実行し、ユーザ識別を行う。ユーザ識別ルールは図１３に例示するようにユーザの識別を行うためのルールがJava言語で記述される。ルール記述用インターフェースをimplementsしたコードのclassファイルを登録すると、サーバ側では登録されたclassファイルを実行し、ユーザＩＤ、ユーザに割り当てられたロール、リクエストが送信された端末のＩＰなどユーザを分類するための情報を取得する。ユーザが識別されるとログ出力箇所決定部１３１は、決定する内容をユーザ識別情報を用いて判断する。イベント履歴情報にはユーザ識別情報(ロール情報やユーザＩＤなど、ルールにのっとった識別情報)を追加で保存する。イベント履歴から、識別されたユーザ情報を基にユーザの操作の傾向を判断できる。なお、不正動作情報にユーザ識別情報が付加されてもよい。また、ログ生成情報にユーザ識別情報が付加されてもよい。
【００４３】
ログ出力箇所決定部１３１は、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムにログ出力処理を挿入することを決定してもよい。またログ出力箇所決定部１３１は、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムのログ出力処理の挿入範囲を変更してもよい。
【００４４】
ユーザ識別が行われた場合とユーザ識別が行われない場合のログ出力処理の挿入結果例を図１４に示す。ユーザ識別が行われない場合、エラーが発生すると管理者、一般ユーザともにJavaScript内にログ出力処理が埋め込まれる。一方、本実施形態では、ログ出力箇所決定部１３１は、イベント履歴、不正動作情報、ログ生成情報から管理者のみエラーが出ていることを判断し、リクエストが管理者からの場合に限ってJavaScriptにログ出力処理を埋め込む。また、管理者による実行範囲や一般ユーザによる実行範囲等の情報を予め登録しておき、埋め込む対象を管理者操作に絞ることで、ログの出力箇所も絞り込むことができる。
【００４５】
第２の実施形態の効果は不正動作情報からのみ決定するログ出力箇所よりも効率的にログ出力箇所を決定できることにある。その理由はユーザ識別部１２３により識別されたユーザ情報を利用することで、ユーザ特性に合わせた操作範囲に限定してログ出力処理を埋め込むことができるからである。
【００４６】
（第３の実施形態）
連続した操作を含む処理の場合、特定の処理シーケンスからの場合のみ操作が失敗するといったケースがある。ログイン後の操作(サーバへの送信リクエスト)のパターンに着目することで、ログ出力箇所の分析時に出力箇所決定時の絞り込み精度を上げることができる。第３の実施形態は、操作Ａ→操作Ｂ→操作Ｃのときは特にエラーが発生しないが、操作Ａ’→操作Ｂ’→操作Ｃのときに操作Ｃでエラーが出る場合、操作Ｃまでのリクエストをリストとして保持することで、操作Ａ’→操作Ｂ’→操作Ｃの流れの場合のみ操作Ｃにログ出力処理を埋め込み、エラーが発生しないケースでの不要なログ出力をなくす。
【００４７】
図１５は、本発明の第３の実施形態の構成図である。
【００４８】
本実施の形態は、図６におけるリクエスト受信部１１１による処理の後にリクエストパターン解析部１２４による処理を追加したものである。
【００４９】
本実施形態ではクライアントから受信したリクエストのリストが記憶部管理部１４０に蓄積記憶される。
【００５０】
リクエストパターン解析部１２４は、受信したリクエストのリストと不正動作情報１４２から、不正動作が発生したときのリクエストの受信順序のパターンを解析し、リクエストのパターンと不正動作情報との紐付けを行い、対応関係をリクエストパターン情報１４５に記憶する。例えば、リクエストＡ→リクエストＢ→リクエストＣといった順序でリクエストがサーバに送信された場合に障害が発生すると解析した場合、これらのリクエストのパターンと不正動作情報の紐付けを行う。
【００５１】
ログ出力箇所決定部１３１は、受信したリクエストのパターンに基づいてログ出力処理の挿入箇所を判断する。ログ出力箇所決定部１３１は、リクエストパターン情報１４５に登録されているパターン（例えばリクエストＡ→リクエストＢ→リクエストＣ）と同じパターンのリクエストがあって、不正動作があった場合には、スクリプトのリクエストＣに対応する箇所にログ出力処理を挿入する。
【００５２】
第２の実施形態と同様に第３の実施形態でもリクエストパターンに応じて、ログ出力処理を埋め込む場合と埋め込まない場合の制御を行う。特定のパターンに限定してログ出力処理の埋め込みを行うことで不要なログ出力をさけることができ、サーバ側の負荷を減らすことができる。
【００５３】
第３の実施形態の効果は、不正情報からのみ決定するログ出力箇所よりも効率的にログ出力箇所を決定できることにある。その理由はリクエスト受信パターン解析部により検出されたパターンを利用することで、クライアントの作業の流れに合わせた操作範囲に限定してログ出力処理を埋め込むことができるからである。
【００５４】
上述した本発明の実施形態に係る装置は、本装置のＣＰＵ（Central Processing Unit）が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。
【００５５】
また、発明は、ポータル製品への適用、クラウド領域やモバイルスマートフォン領域で提供されるリッチクライアントシステムへの適用が可能である。
【００５６】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５７】
（付記１）
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御する
ログ出力制御装置。
【００５８】
（付記２）
前記不正動作情報は、不正動作が検出されたログの識別情報を含み、
前記ログ生成情報は、プログラムにおけるログ出力処理が挿入された場所と、挿入されたログ出力処理に対応するログの識別情報とを含み、
前記不正動作情報と前記ログ生成情報とに基づいて、クライアントから要求されたプログラムにおいて不正動作が検出されたログの出力箇所を特定し、前記特定した箇所にログ出力処理を挿入する
付記１に記載のログ出力制御装置。
【００５９】
（付記３）
クライアントのユーザ識別情報を取得し、
クライアントのユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
付記１又は２に記載のログ出力制御装置。
【００６０】
（付記４）
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムにログ出力処理を挿入することを決定する
付記３に記載のログ出力制御装置。
【００６１】
（付記５）
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムのログ出力処理の挿入範囲を変更する
付記３又は付記４に記載のログ出力制御装置。
【００６２】
（付記６）
クライアントから受信したリクエストのパターンに基づいて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
付記１から付記５のいずれかに記載のログ出力制御装置。
【００６３】
（付記７）
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御する
ログ出力制御方法。
【００６４】
（付記８）
前記不正動作情報は、不正動作が検出されたログの識別情報を含み、
前記ログ生成情報は、プログラムにおけるログ出力処理が挿入された場所と、挿入されたログ出力処理に対応するログの識別情報とを含み、
前記不正動作情報と前記ログ生成情報とに基づいて、クライアントから要求されたプログラムにおいて不正動作が検出されたログの出力箇所を特定し、前記特定した箇所にログ出力処理を挿入する
付記７に記載のログ出力制御方法。
【００６５】
（付記９）
クライアントのユーザ識別情報を取得し、
クライアントのユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
付記７又は８に記載のログ出力制御方法。
【００６６】
（付記１０）
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムにログ出力処理を挿入することを決定する
付記９に記載のログ出力制御方法。
【００６７】
（付記１１）
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムのログ出力処理の挿入範囲を変更する
付記９又は付記１０に記載のログ出力制御方法。
【００６８】
（付記１２）
クライアントから受信したリクエストのパターンに基づいて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する
付記７から付記１１のいずれかに記載のログ出力制御方法。
【００６９】
（付記１３）
コンピュータに、
クライアントが出力したログの履歴と、前記ログから検出されたプログラムの不正動作に関する不正動作情報と、クライアントで実行されるプログラムに挿入されたログ出力処理に関するログ生成情報とを用いて、クライアントから要求されたプログラムにおけるログ出力箇所を動的に制御する処理
を実行させるプログラム。
【００７０】
（付記１４）
前記不正動作情報は、不正動作が検出されたログの識別情報を含み、
前記ログ生成情報は、プログラムにおけるログ出力処理が挿入された場所と、挿入されたログ出力処理に対応するログの識別情報とを含み、
前記コンピュータに、前記不正動作情報と前記ログ生成情報とに基づいて、クライアントから要求されたプログラムにおいて不正動作が検出されたログの出力箇所を特定し、前記特定した箇所にログ出力処理を挿入する処理を実行させる付記１３に記載のプログラム。
【００７１】
（付記１５）
前記コンピュータに、
クライアントのユーザ識別情報を取得する処理、
クライアントのユーザ識別情報を用いて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する処理
を実行させる付記１３又は付記１４に記載のプログラム。
【００７２】
（付記１６）
前記ログ出力処理の挿入処理の制御では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムにログ出力処理を挿入することを決定する
付記１５に記載のプログラム。
【００７３】
（付記１７）
前記ログ出力処理の挿入処理の制御処理では、ユーザ識別情報に応じて、前記クライアントから要求されたプログラムのログ出力処理の挿入範囲を変更する
付記１５又は付記１６に記載のプログラム。
【００７４】
（付記１８）
前記コンピュータに、
クライアントから受信したリクエストのパターンに基づいて、クライアントから要求されたプログラムのログ出力処理の挿入処理を制御する処理を実行させる付記１３から付記１７のいずれかに記載のプログラム。
【００７５】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
この出願は、２０１３年３月２６日に出願された日本出願特願２０１３−６３５９３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００７６】
１００      ログ出力制御装置
１１０      データ送受信部
１２０      データ解析部
１３０      ログ処理部
１４０      記憶管理部
１１１      リクエスト受信部
１１２      ログ受信部
１１３      レスポンス送信部
１２１      ログ解析部
１２２      不正動作解析部
１３１      ログ出力箇所決定部
１３２      ログ出力処理埋め込み部
１４１      ログ生成情報
１４２      不正動作情報
１４３      イベント履歴情報
２００      スクリプト実行装置
【図１】
0006015849.tif 000002
【図２】
0006015849.tif 000003
【図３】
0006015849.tif 000004
【図４】
0006015849.tif 000005
【図５】
0006015849.tif 000006
【図６】
0006015849.tif 000007
【図７】
0006015849.tif 000008
【図８】
0006015849.tif 000009
【図９】
0006015849.tif 000010
【図１０】
0006015849.tif 000011
【図１１】
0006015849.tif 000012
【図１２】
0006015849.tif 000013
【図１３】
0006015849.tif 000014
【図１４】
0006015849.tif 000015
【図１５】
0006015849.tif 000016