WebLogic 12.2.1でJAX-RS Webサービスが実行されています。ここに示したように、Webサービスは、ロギング用log4j2を使用し、log4j2.xmlに指定されているこれまでのところ、ログファイルにログインすることができます:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">E:/MLM/MLMDomain/servers/MLMAppSrv01/logs</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${log-path}/MLMServices.log" filePattern="${log-path}/MLMServices-%d{yyyy-MM-dd}-%i.log" >
....
次に、代わりに管理対象サーバー名をハードコーディングする「MLMAppSrv01」
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">E:/MLM/MLMDomain/servers/${weblogic.Name}/logs</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${log-path}/MLMServices.log" filePattern="${log-path}/MLMServices-%d{yyyy-MM-dd}-%i.log" >
....
を今すぐ代わりに、実際のWebLogicサーバー名、単にlog4j2で$ {weblogic.Name}を置き換えるので、:ここに示したように、私は、 "$ {weblogic.Nameを}" を使用して、プロパティの置換にそれを変更しました$ {weblogic.Name}を実際のサブフォルダ名として扱ったので、フォルダにログファイルが作成されました。
E:/MLM/MLMDomain/servers/${weblogic.Name}/logs
Webサービスコードでは、System.getProperty( "weblogic.Name")を使用すると、アプリケーションが実行されていた実際の管理対象サーバー( "MLMAppSrv01")を取得できました。したがって、 "weblogic.Name"は実際にJVMで定義されていることを示しています。
私はスタンドアロンプログラムで修正log4j2.xmlファイルを使用し、-Dweblogic.Name = MLMAppSrv01に渡し、それが正常に動作し、ファイルがで作成されます。何ができるか
E:/MLM/MLMDomain/servers/MLMAppSrv01/logs
log4j2.xmlの$ {}がWebLogicで動作しない理由は何ですか?
ありがとうございます。
ありがとうございました!私はまだスタンドアローンのプログラムのために、 "sys:"という接頭辞の有無にかかわらず動作するのは難しいです。しかし、WebLogicでは、私は間違いなく "sys:"プレフィックスが必要です。 – user3573403