特殊な管理 > サイトメンテナンス > Windchill でのログ作成の管理
  
Windchill でのログ作成の管理
Windchill ログメッセージには、アプリケーションの動作のトラブルシューティングに使用できる例外トレースバックなどの情報が保存されます。
Windchill Directory Serverがインストールされているサーバーから、コマンドラインユーティリティを使用して Windchill Directory Serverのログファイルを管理します。詳細については、Windchill Directory Server ロギングの管理を参照してください。
Apache log4j は、Windchill 9.0 以降、ログメッセージの管理および発行のための主なメカニズムとして使用されています。従来のログ機能の中には log4j を利用するように修正されたものもありますが、既存の多くの Windchill ログ機能は以前のリリースのままであり、Windchill プロパティファイルの設定によって管理されています。
10.0 リリースでは、従来の一部の Windchill ログ機能が log4j へ移行されました。
ログを管理するには、以下を熟知している必要があります。
wt.properties ファイルのログ作成に影響を与えるプロパティ設定。これらのプロパティについては、<Windchill>/codebase ディレクトリにある properties.html ファイルおよびセクション「定義済み wt.properties ログファイルの設定」を参照してください。
log4j パッケージに関する一般的な情報。
log4j の概要については、以下の URL のホームページを参照してください。
http://logging.apache.org/log4j/1.2/manual.html
Windchill ログに使用される log4j ロガー。
デフォルトの Windchill ロガーについての説明、およびログファイルにエントリを生成するインタフェースとしてどの Java パッケージまたはクラスが使用されるかについては、以下のファイルを参照してください。
<Windchill>/codebase/loggers.html
ロガーに関連付けられた MBean を使用して、ログ内容を一時的に変更できます。ロガーと MBean の関連付けについては、loggers.html ファイルを参照してください。
log4j ログに影響を与えるプロパティ設定。これらのプロパティ設定は、<Windchill>/codebase/WEB-INF のプロパティファイルにあります。
log4jMethodServer.properties - メソッドサーバーの log4j ログ、およびメソッドサーバーに組み込まれている Tomcat サーブレットエンジンで動作する Windchill Web アプリケーションのログを制御します。
log4jServerManager.properties - サーバーマネージャの log4j ログを制御します。
また、<Windchill>/codebase/log4j.properties ファイルは、別のコンフィギュレーションファイルが指定されていない場合に log4j が使用するデフォルトのコンフィギュレーションファイルとしても使用されます。log4j.properties ファイルは、ほとんどのアプレット、PSE、およびほとんどのコマンドラインアプリケーションのログオプションを制御します。
前記の log4j properties ファイルは、xconfmanager ユーティリティを使用せずに、ファイルを編集して変更する必要があります。これらのファイルを手動で変更する場合は、カスタマイズの管理の説明に従ってファイルをバックアップしてください。
Logging MBean を使用してログ設定を一時的に変更する方法。MBeans を使用したログファイルの処理を参照してください。
log4j ログファイルを表示および送信する方法。
log4j ログファイルを表示または送信するには、いくつかの方法があります。以下に例を示します。
LogsDirViewers MBean ノードを使用して、ログを表示および電子メール送信できます。
MBeans を使用したログファイルの表示および電子メール送信を参照してください。
「サイト」 > 「ユーティリティ」にある「システム設定コレクター」を使用して、ログファイルを収集できます。
システム設定コレクターを参照してください。
「Log File Viewer」ページで、サーバーのログファイルをサーチ、リスト表示、および参照できます。「システム正常性監視ツール」ページから、このページへリンクできます。「サーバーステータス」ページで「監視ツール」リンクをクリックすると、このページが表示されます。
「サーバーステータス」ページとそのリンクの詳細については、Server Status Page についてを参照してください。
「サーバーステータス」ページの詳細を参照するには、「サイト」 > 「ユーティリティ」からこのページを開き、このページでオンラインヘルプを表示します。
xconfmanager ユーティリティを使用して、レガシーログのログ設定と詳細度プロパティを永続的に変更する方法。xconfmanager ユーティリティの使用については、xconfmanager ユーティリティの使用を参照してください。
ログレベルを表示または設定する方法。
ログレベルを設定するにはいくつかの方法があります。
wt.util.jmx.SetLogLevel コマンドラインユーティリティを使用すると、指定したサーバープロセスの指定したロガーのロガー詳細レベルを設定またはリセットできます。このユーティリティは、次のように指定します。
java wt.util.jmx.SetLogLevel [-ms|-sm|-se|-all]* [-resetAll]
[<logger_name> [<log_level>]]
<ロガー名> はロガーの名前、<ログレベル> は指定した詳細レベルです。ログレベルに指定できる値は、ALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、および OFF です。
サーバープロセスは、以下の組み合わせで指定できます。
-sm -- クラスタ内のすべてのサーバーマネージャが対象です。
-ms -- サーブレットエンジンが組み込まれているかどうかにかかわらず、クラスタ内のすべてのメソッドサーバーが対象です。
-se -- クラスタ内のすべてのサーブレットエンジンが対象です。
-all -- 上記すべてのプロセスが対象です。何も指定しない場合は、これを指定したものと見なされます。
-resetAll オプションは、ターゲットプロセス内のすべての log4j の詳細度を log4j コンフィギュレーションファイルで指定されたレベルにリセットします。-resetAll とロガー名を両方とも指定した場合、指定したロガーの詳細レベルを設定する前に、リセットが実行されます。-resetAll とロガー名のどちらかを指定する必要があります。
「システム正常性監視ツール」ページの「Log Levels」リンクは、現在のサーバープロセスについて、サーバーマネージャロガー、メソッドサーバーロガー、またはサーブレットエンジンロガーのログレベルを表示または設定できるページを示しています。「サイト」 > 「ユーティリティ」 > 「サーバーステータス」から「Log Levels」リンクにアクセスできます。「サーバーステータス」ページで「監視ツール」をクリックします。
* 
各ログ機能は、トラブルシューティングで必要な場合にのみ有効にしてください。詳細については、Windchill ソリューションのセキュリティのための最良事例を参照してください。
次のセクションでは、wt.properties ログファイルの設定およびログイベントのコンフィギュレーション設定の詳細について説明します。
定義済み wt.properties ログファイルの設定
このセクションでは、Windchill で使用される wt.properties ファイルの共通のログファイルの設定の一部について説明します。
wt.logs.dir プロパティによって、ログファイルに使用されるデフォルトのディレクトリが設定されています。デフォルトでは、このプロパティは <Windchill>/logs に設定されます。
ログファイルの名前と内容は、基本的に log4j 設定によって制御されます。サーバーマネージャおよびメソッドサーバーの log4j 設定は、次のように wt.properties 内で指定されます。
wt.manager.log4j.config=WEB-INF/log4jServerManager.properties
wt.method.log4j.config=WEB-INF/log4jMethodServer.properties
ログファイルに一貫性があれば、テクニカルサポートとのやり取りが容易になるので、ログファイルの設定は変更しないことを PTC はお勧めします。
主なメソッドサーバーおよびサーバーマネージャのログファイルには、既存のコードから生成されたすべてのメッセージと log4j ロガーを使用して生成されたメッセージが含まれています。このトピックのリストは、ログファイルの操作に関する既存の情報を示しています。
保存するログイベントの設定
Windchill のデフォルトでは、ほとんどのロガーが、ERROR ログイベントと FATAL ログイベントのみを Windchill ログファイルに保存するよう設定されています (ほかのログイベントを出力するように設定変更されている場合を除く)。したがって、通常、TRACE、DEBUG、INFO、WARN などのその他のログイベントを参照するように設定を変更する必要があります。
特定の分野について特定のログレベルを有効にするには、目的の分野にロガーがあるかどうかを確認します。これを行うには、「Operations」タブからロガーを表示するか (詳細についてはMBeans を使用したログファイルの処理を参照)、「Log Levels」ページを使用します (「サイト」 > 「ユーティリティ」 > 「サーバーステータス」)。「サーバーステータス」ページで「監視ツール」をクリックします。
log4j ロガーが実装されていない場合は、wt.properties でログレベルを設定しているプロパティを見つけ、xconfmanager ユーティリティを使用してそのプロパティのレベルを設定します。
log4j ロガーが実装されている場合は、すべてのロガーの指定のログレベルを有効にするか、またはより特定のレベルでログレベルを調整することができます。
すべてのロガーの指定のログレベルを有効にするには、該当するプロパティファイルで log4j.rootLogger プロパティを見つけ、最初のコンマの前の値 (デフォルトでは "error") を必要なレベルに変更します。たとえば、以下を
log4j.rootLogger=error, …
以下のサブディレクトリにコピーします。
log4j.rootLogger=debug, …
すべてのロガーのログを有効にすると、ログ出力のデータ量が非常に多くなるため、より適切なロガーレベルでログレベルを調整する必要があります。そのためには、以下の形式の行をプロパティファイルに追加します。
log4j.logger.<ターゲットロガー名>=<希望するロガーレベル>
<ターゲットロガー名> はロガーの名前、<希望するロガーレベル> はログレベルです。
たとえば、wt.servlet.ServletRequestMonitor.stats のログレベルを「情報」に設定するには、次のプロパティを log4jWebApp.properties ファイルに追加します。
log4j.logger.wt.servlet.ServletRequestMonitor.stats=INFO
* 
このプロパティを追加すると、すべての wt.servlet.ServletRequestMonitor.stats.* ロガーのデフォルトログレベルが INFO に設定されます。たとえば、wt.servlet.ServletRequestMonitor.stats.summary ロガーのレベルも、このロガーのレベルが別に指定されない限り、INFO に設定されます。
log4j コンフィギュレーションファイルを変更しても、これらのファイルの定期的な修正の確認が終了するまでの数分の間は通知されない場合があります。log4j コンフィギュレーションファイルを強制的に即座にリロードするには、Logging MBean の再設定操作を使用するか、コンフィギュレーションファイルを変更せずに log4j の設定を一時的に変更します。
* 
メンテナンスリリースを適用すると、手動によるプロパティファイルの変更が保存されない場合があります。手動で変更したファイルがバックアップされていることを確認するようにしてください。
サマリーログエントリと MBean 設定について
統計的サマリーであるログエントリの多くは、システムの状態を確認したり、検出された特定の問題のデバッグを試みるユーザーにとって役に立つ情報を提供します。いくつかの Windchill MBean によって、このようなタイプのメッセージの記録時期と頻度を設定できます。
* 
MBeans による変更を永続化するには、Loader MBean を使用した設定変更の永続化の説明に従って Loader MBean を使用する必要があります。
ログファイルを表示する際、以下のいずれかによって、含まれている統計的サマリーを特定できます。
wt.summary.general
stats.summary で終わるロガー名
汎用サマリー用に生成されたもの (wt.summary.general から提供される) は、Summaries にある定義済みの Summary MBean によって管理できます。
stats.summary によって識別されるデフォルトの統計サマリーエントリの場合、生成されたエントリの内容をどの MBean が制御するかは、MBean 名と、.stats.summary の前に表示される名前の一部を照合することで判断できます。たとえば、メソッドサーバーのログエントリが以下のように始まるとします。
Wed 9/3/08 13:52:50: wt.jmx.core.SharedScheduledExecutor.worker: INFO :
com.infoengine.util.IeContextMonitor.stats.summary -
"IeContextMonitor" という名前から、このエントリを制御する MBean は IeContexts (ツリー内の Monitors ノードの下にあると考えられる) であると推測されます。IeContexts (Monitors) を参照してください。
メソッドサーバーのログエントリが以下のように始まる場合、
Wed 9/3/08 13:52:50: wt.jmx.core.SharedScheduledExecutor.worker: INFO :
com.infoengine.jndi.DirContextMonitor.stats.summary -
このエントリを制御する MBean は DirContexts です。DirContexts (Monitors) を参照してください。
各 MBean に関連付けられている以下の属性を使用して、サマリーを管理します。
SummaryIntervalSeconds - 統計を記録する頻度を決定します (デフォルトは 600 秒)。
SummaryStatisticsLoggerName - この名前はログエントリに表示されます。
SummaryStatisticsLoggerLevel - ERROR、FATAL、TRACE、DEBUG、INFO、または WARN。
StatisticsLoggerOutputAttributes - 記録するデータ。
StatisticsLoggerOutputAttributesSupported - 記録できるデータ。
* 
システムの 1 日中の実行記録を保持できるよう、デフォルトで提供されているものと同様に、常にサマリー情報を記録してください。