Log4j 2.0 で発生する例外の次善策
このセクションでは、Log4j 2.0 で発生する例外の次善策を示します。
例外 - ファイルの場所の情報と特殊文字を含む例外ログが印刷される。たとえば、以下のような疑問符 (?) が表示される。
org.apache.solr.client.solrj.SolrServerException: Server refused connection at: http://xxx.xxxx.com:8085/solr/wblib
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:688) ~[xxxxx.jar:?]
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:266) ~[xxxxx.jar:?]
Windchill コンソールベースのユーティリティの多くで例外ログに同様の例外が表示されることがあります。例外ログに [<クラスの場所> : <ファイル名>] が表示されないようにするには、ユーティリティの実行中に以下の引数を追加します。
windchill --javaargs=-Dlog4j2.configurationFile\=log4j.properties <name of the utilities>
例:
windchill --javaargs=-Dlog4j2.configurationFile\=log4j.properties wt.auth.Authentication
既成の Log4j 2.0 ライブラリでは、PatternLayout クラスにプロパティ alwaysWriteExceptions=true が含まれており、これは示されているレイアウトの末尾に変換パターン %xEx を追加します。%xEx 変換パターンは log4j 1.2 で使用されていたパターン %ex と同じですが、%xEx にはクラスのパッケージング情報も含まれています。場所とクラスのパッケージング情報をログに含める必要がない場合、以下のようにプロパティ alwaysWriteExceptions = false を設定し、レイアウトパターンで %ex を明示的に追加します。
appender.stdout.type = Console
appender.stdout.name = stdout
appender.stdout.follow = false
appender.stdout.layout.type = PatternLayout
appender.stdout.layout.alwaysWriteExceptions = false
appender.stdout.layout.pattern = %-5p : %c %X{user} - %m%ex%n
例外 - 以下のような実装欠落の例外が表示される。
wt.method.server - MethodServerMain abort java.lang.AbstractMethodError: Missing implementation of resolved method abstract getLogger()Lorg/apache/logging/log4j/Logger; of interface com.infoengine.SAK.Tasklet.
at com.infoengine.SAK.BasicTasklet.postInvoke(BasicTasklet.java:1497)
at com.infoengine.compiledTasks.file.opt.ptc.kangaroo_220.Windchill.tasks.wt.federation.queryprincipals$2exml.invoke(queryprincipals$2exml.java:105)
Info*Engine キャッシュをクリアし、<WT_HOME>\tasks\codebase\com\infoengine\compiledTasks\file にあるファイルを除去します。
これは役に立ちましたか?