ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムであって、ソフトウェアからログの出力要求を受信するログ出力要求受信手段102とログの出力設定情報を管理するログ出力設定手段109と、前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段103と、前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段104と、前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段105と、を有し、前記ログ出力要求受信手段102は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システム。前記ユーザーデータ管理手段105は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする、請求項1に記載のログ管理システム。ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムの制御方法において、ソフトウェアからログの出力要求を受信するログ出力要求受信工程102とログの出力設定情報を管理するログ出力設定工程109と、前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定工程103と、前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力工程104と、前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理工程105と、を有し、前記ログ出力要求受信工程102は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システムの制御方法。前記ユーザーデータ管理工程105は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする請求項3に記載のログ管理システムの制御方法。ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムの制御方法を情報処理装置に実行させるためのプログラムにおいて、ソフトウェアからログの出力要求を受信するログ出力要求受信手段102ログの出力設定情報を管理するログ出力設定手段109、前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段103、前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段104、前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段105、を有し、前記ログ出力要求受信手段102は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システムの制御方法をコンピューターに実行させるためのコンピューターに読み取り可能なプログラム。前記ユーザーデータ管理手段105は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする、請求項5に記載のログ管理システムの制御方法をコンピューターに実行させるためのコンピューターに読み取り可能なプログラム。上記従ログファイル作成方法では、機密と判断される情報を出力しないようにできるが、それにより情報が削除されてしまうため、ログの分析に支障をきたす可能性がある。また、ログの二次的な改変をするため、誤ってログの内容を書き変えてしまうミスが発生する恐れがある。本発明は、上記問題に鑑みて成されたものであり、ログ内の機密情報を所定のIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしに機密情報漏えいを回避するログ管理システムおよびその制御方法、並びにプログラムを並びにプログラムを提供することを目的とする。ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムであって、ソフトウェアからログの出力要求を受信するログ出力要求受信手段102とログの出力設定情報を管理するログ出力設定手段109と、前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段103と、前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段104と、前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段105と、を有し、前記ログ出力要求受信手段102は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システム。本発明によれば、ログに含まれる機密情報を所定のIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしにユーザーデータが動作ログに混入することを防ぐことができる。また本発明によれば、ログの二次改変を伴わないため、ログの原本性保証を容易に実現できる。以下、本発明を実施するための最良の形態について図面を用いて説明する。[第1の実施形態]図1は、本発明の第1の実施形態に係るソフトウェアのログ管理システムの構成を示すブロック図である。ログ出力モジュール101は、ログ出力要求受信部102、ログ出力判定部103、ログ出力部104、ユーザーデータ管理部105から構成される。ログ出力モジュール101は、ソフトウェアからログ出力要求を受信し、ログ出力設定に基づいてログを作成し、動作ログ106とユーザーデータログ107を出力する。ここで、動作ログとは、ユーザーの操作履歴を示すいわゆる操作ログや、ユーザーの認証履歴を示すいわゆる認証ログなど、ソフトウェアの動作に関するあらゆるログを含んでいる。ログ出力要求受信部102は、ソフトウェアからログ出力要求を受け付ける。ログ出力要求は、ログ出力モジュールが解釈できる所定のフォーマットでログ出力モジュール101に入力する必要がある。ログ出力判定部103は、ログ出力設定108の設定内容に基づき、ログ出力要求受信部102が受信したログの出力方法を判定する。具体的には、ログ出力設定108で出力が許可されているユーザーデータについては、そのままログ出力部104を介して動作ログ106として出力する。一方、ログ出力設定108で出力が禁止されているユーザーデータについては、該当するユーザーデータを適当なID所定のIDで置換して、動作ログ106を出力する。適当なIDは、ログ出力判定部103がユーザーデータ管理部105に問い合わせることで取得する。IDと置換されたユーザーデータは、ユーザーデータ管理部105を介してユーザーデータログ107として出力される。なお、ユーザーデータとは、ユーザー名やIPアドレスなど、ユーザー環境特有のデータのことを指す。ログ出力部104は、ログ出力判定部103から出力すべき動作ログを受け取り、動作ログ106を出力する。動作ログは、ログ出力設定108で出力が禁止されているユーザーデータの値を含まれていない状態で出力される。ユーザーデータ管理部105は、ログ出力判定部103から、出力禁止と判定されたユーザーデータの値に対し、適当なIDを発行する。IDは、他のユーザーデータの値と重複しないものを使用する。発行したIDと、そのIDを割り当てられたユーザーデータは、関連付けてユーザーデータログ107に出力する。ログ出力設定部109は、ユーザーに対してログ出力設定108を編集するためのインタフェースを提供する。ログ出力設定部109は、たとえばWebアプリケーションとして動作し、ユーザーはブラウザーを使用してログ出力設定画面にアクセスし、ログ出力設定108を編集する。なお、ログ出力モジュール101はログを出力すべきソフトウェアに組み込まれてビルドされ、ソフトウェアの一部として動作させても良いし、ソフトウェアとは別に動作させ、ソフトウェアから汎用的なプロトコルによってログ出力要求を受け付けるように構成しても良い。また、動作ログ106、ユーザーデータログ107は、ログを記録できるものであればどのような保存形式でも良く、たとえばファイルシステム上のファイル形式で保持していても良いし、データベース上に保持していても良い。図2は、図1のログ管理システムが動作する情報処理装置サーバー及びPCのハードウェア構成を示すブロック図である。図2において、CPU201は、ログ出力に関する各種データ処理のための演算を行い、バス208に接続された各構成要素を制御する処理装置である。ROM202は、データ読出し専用のメモリであり、基本制御プログラムが格納されている。RAM203は、データ読み書き用のメモリであり、CPU201の各種演算処理やデータの一時記憶用に用いられる。外部記憶装置204は、情報処理装置のオペレーティングシステムOSのシステムプログラム、及びログ管理システムのプログラムやデータ処理中の一時記憶領域として用いられる。外部記憶装置204は、RAM203に比べてデータの入出力は遅いが、大容量のデータを保持することが可能である。外部記憶装置204は、主に磁気記憶装置HDDで構成されるが、CD、DVD、メモリカードといった外部メディアを装填してデータの読み込みや記録を行う装置であってもよい。入力装置205は、情報処理装置に文字やデータを入力するための装置であり、各種のキーボードやマウスなどが該当する。表示装置206は、情報処理装置の処理結果を表示するための装置であり、CRTまたは液晶モニターなどが該当する。通信装置207は、LANに接続してTCP/IPによるデータ通信を行い、他の情報処理装置と相互に通信を行う場合に使用される。図3は、ソフトウェアが内部で持つログ出力フォーマットの一例である。ソフトウェアは、動作中に適宜ログを出力する。図3は、ソフトウェアがユーザーからリクエストを受信したときに出力するログの例である。不等号で囲まれているDateTimeとRequestIDの2つのフィールドは、ログ出力要求受信部102に入力する時点で、ソフトウェアが具体的な値を設定する。DateTimeはシステム時刻を表すもので、RequestIDは、ユーザーからのリクエストを識別するために、ソフトウェアがリクエストごとにユニークに発行するIDである。中括弧で囲まれているUserNameとIPAddressの2つのフィールドは、前述のDateTimeやRequestIDのようにソフトウェア独自の値ではなく、ユーザーデータの値を扱うフィールドである。そのため、UserNameとIPAddressの値を動作ログ106に出力するかどうかは、ログ出力判定部103が判定する。図4は、ソフトウェアがログ出力モジュール101に入力する情報の一例である。ソフトウェアがログ出力モジュール101に入力する情報は、ログの内容と、ログの内容に含まれるユーザーデータを扱うフィールドに入る具体的な値の組み合わせで構成される。図4の例では、ダブルクォーテーションで囲まれた最初の文字列がログの内容であり、ダブルクォーテーションで囲まれた第二、第三の文字列が、ログの内容に含まれるユーザーデータを扱うフィールドに入る具体的な値である。図4のログの内容は、図3の例におけるDateTimeとRequestIDの具体的な値は、すでにソフトウェアによって設定されている。一方、ユーザーデータ値を扱うUserNameとIPAddressは、まだ具体的な値を設定されていない。UserNameとIPAddressに対応する具体的な値は、ログの内容に続けて、Satoと19216805のように指定されている。図5は、ログ出力モジュール101におけるログ出力処理の流れを示すフローチャートである。ログ出力モジュール101が動作するPCおよびサーバーは、本明細書では、CPU、RAM、ROM、HDD等からなる。なお、フローチャートで示す手順がRAM、ROM、HDDのいずれかの記憶手段に記憶され、CPUにより実行される。ステップS501において、ログ出力判定部103は出力するログに含まれるユーザーデータの種類が隠匿対象であるかどうかを判定する。ユーザーデータの種類が隠匿対象であるかどうかは、あらかじめ設定されたログ出力設定108に基づいて判定する。出力するユーザーデータの種類が隠匿対象であった場合、ステップS502において、ログ出力判定部103はユーザーデータ管理部105からユーザーデータ値に対応するIDを取得する。具体的には、ログ出力判定部103が隠匿対象のユーザーデータの種類と値をユーザーデータ管理部105に送信し、ユーザーデータ管理部105は、ユーザーデータの値に対してユニークなIDを発行してログ出力判定部103に返す。ユーザーデータ管理部105は、ユーザーデータログ107として、ユーザーデータの値と発行したIDを管理している。ステップS503において、ログ出力判定部103は、ステップS502で取得したIDでログに含まれるユーザーデータを置換する。ステップS504において、ログ出力判定部103はログ出力部104に対しログ出力を要求する。ログ出力部104は、ログ出力判定部103から受信した文字列を、動作ログ106としてファイル等に出力する。ステップS501において、出力するユーザーデータの種類が隠匿対象でなかった場合、ログ出力判定部103はログの内容を置換することなく、ステップS504において、そのままの文字列でログ出力部104にログ出力を要求する。ログ出力部104は、ログ出力判定部103から受信した文字列を、動作ログ106としてファイル等に出力する図6は、ログ出力設定部109の操作画面の例を示す図である。ユーザーは、ユーザーデータをログに出力するかどうかを選択する。ユーザーデータの種類としては、IPアドレス、MACアドレス、ユーザー名、ホスト名、ファイル名などがある。ユーザーがログ出力設定部109を使用して設定した内容は、ログ出力設定108として保存される。ここで隠匿するように設定されたユーザーデータは、ログ出力判定部103で適当なIDに変換されて動作ログ106に出力される。ユーザーデータとIDの紐づけはユーザーデータログ107で管理される。なお、ログ出力設定部109で、すべてのユーザーデータを隠匿しないように設定した場合、すべてのユーザーデータは動作ログ106に出力されるため、ユーザーデータログ107は作成されない。図7は、ユーザーデータを隠匿していない場合の動作ログ106の例である。ユーザーデータを隠匿しない設定であるため、例えば図7の1行目には、ユーザー名SatoとIPアドレス192.168.0.5が出力されている。図8は、ユーザーデータを隠匿している場合の動作ログ106の例である。ここではユーザー名とIPアドレスを隠匿する設定であることを想定している。基本的な内容は図7の例と同じであるが、たとえば図8の1行目では、ユーザー名が[User_00000001]というIDで、IPアドレスが[IP_00000001]というIDでそれぞれ置換されて出力されている。このように、ユーザーデータを隠匿対象に設定することで、ユーザーデータの具体的な値は動作ログ106には出力されなくなる。実際のユーザーデータの値は、IDと紐づけられてユーザーデータログ107で管理される。図9は、図8の動作ログ106に対応するユーザーデータログ107の例である。ユーザーデータ管理部105は、ログ出力判定部103から受け取ったユーザーデータの値に対してIDを発行し、ユーザーデータログ107に追記する。図9の例では、図8の動作ログに出力されていたIDである[User_00000001]が、実際の値であるSatoと紐づけられて管理されている。同様に、[IP_00000001]というIDの具体的な値は192.168.0.5である。上記第1の実施形態によれば、ログ内の機密情報を適当なIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしにユーザーデータが動作ログに混入することを防ぐことができる。[第2の実施形態]本発明の第2の実施の形態では、図1~図4および図6~図7に示す構成が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。図10は、ログ出力モジュール101におけるログ出力処理の流れを示すフローチャートである。図10中のS501~S504は、図5に示すものと同一のステップであるため、説明は省略する。ステップS1001において、ユーザーデータ管理部105は、ステップS501で隠匿対象と判定されたユーザーデータの値がユーザーデータログ107に存在するかどうかを確認する。隠匿するユーザーデータの値がユーザーデータログ107に存在している場合、そのユーザーデータの値にはすでにIDが付与されていることになる。ステップS1001でユーザーデータの値がユーザーデータログ107に存在した場合、ステップS1002において、ユーザーデータ管理部105はユーザーデータログ107から隠匿対象のユーザーデータの値に対応するIDを取得し、ログ出力判定部103に返す。ステップS1001でユーザーデータの値がユーザーデータログ107に存在しなかった場合、ステップS502において、第1の実施形態と同様に、ユーザーデータ管理部105はユーザーデータの値に対してユニークなIDを発行し、ログ出力判定部103に返す。ユーザーデータ管理部105は、ユーザーデータログ107として、ユーザーデータの値と発行したIDを管理する。図11は、図7の動作ログの内容について、ユーザーデータを隠匿している場合の動作ログ106の例である。図8との違いは、6行目のDocNameのIDである。図8では6行目のDocNameのIDは[DocName_00000002]であったのに対し、図11ではIDが[DocName_00000001]になっている。第2の実施例では、同じ種類、同じ値のユーザーデータに対しては、ユーザーデータ管理部105が同じIDを取得してログ出力判定部103に返す。図7の例では、2行目と6行目のログにおいて、ファイル名DocNameの値が同一である。そのため、ファイル名を隠匿した結果である図11では、2行目と6行目のDocNameのIDが、同一のものになっている。図12は、図11の動作ログ106に対応するユーザーデータログ107の例である。図9との違いは、DocNameのID=00000002の値である。第1の実施形態である図9では、ユーザーデータ管理部105は、同じユーザーデータ値に対しても新規にIDを発行していた。それに対し、第2の実施形態である図12では、ユーザーデータ管理部はすでにユーザーデータログに値があるものに対しては新規にIDを発行せず、ユーザーデータの値に対応するIDを取得する。その結果、図11の例のように、同じ種類、同じ値のユーザーデータは同じIDに置換され、動作ログ106が出力される。上記第2の実施形態によれば、同一のユーザーデータが同一のIDで置換されて動作ログ106が出力されるため、動作ログにより多くの情報量を保持したまま、ユーザーデータが動作ログに混入することを防ぐことができる。