1

OC4J10.1.3で実行されているWebアプリケーションがあります。log4jを使用してログを記録しようとしています。メッセージは期待どおりにIDEコンソールに表示されますが、OC4Jのapplication.logには何も入りません。誰かがこれを機能させるために私が何をする必要があるか知っていますか?

これが私のlog4j.propertiesです:

log4j.rootCategory=DEBUG, CON1

# CON1 is set to be ConsoleAppender sending its output to System.out
log4j.appender.CON1=org.apache.log4j.ConsoleAppender
log4j.appender.CON1.layout=org.apache.log4j.PatternLayout
log4j.appender.CON1.layout.ConversionPattern=%p: [%l] - %m%n

log4j.logger.org.apache.ojb.broker.accesslayer=DEBUG

そして私のJavaクラスではこれをやっています:

Logger logger = Logger.getLogger(getClass().getName());
logger.debug("Test message.");
4

3 に答える 3

2

OC4J Developer's Guideには、 OC4J で log4j を使用する方法が記載されています。

具体的には、log4.properties は、log4j ランタイム jar によって配置できる WEB-INF/classes に配置する必要があります (通常は WEB-INF/lib に配置されます)。applibディレクトリに log4j アーティファクトを配置することは悪い習慣であり、避ける必要があります。

これはよくわかりませんが、log4j が application.log に書き込みを行っていない場合は、ODL ログの内容を確認する必要があります (ODL 構成の詳細については、Developer's Guideを参照してください)。OC4J が OPMN によって管理されている場合は、また、opmn/logs ディレクトリにある管理対象プロセスのコンソール ログを確認することもお勧めします。

于 2009-09-12T12:09:15.010 に答える
2

コンソール出力をファイルに記録するようにOC4Jを構成します。
完全な IAS を使用している場合は、これを opmn.xml に追加します。

<data id="oc4j-options" value="-verbosity 10 -err err.log -out out.log"/>

スタナロンOC4jを使用している場合:

  java -jar oc4j.jar -err err.log -out out.log
于 2009-08-27T21:10:31.640 に答える
1

これは古い質問であることは承知していますが、今日、これについて追加の調査を行いました。

OC4J にはOracleAppenderfor Log4jが含まれていることがわかりました。これは、log4j.properties に入るサンプル構成です。

log4j.appender.OJDL=oracle.core.ojdl.log4j.OracleAppender
log4j.appender.OJDL.LogDirectory=${oracle.j2ee.home}/log/oc4j
#log4j.appender.APP1.MaxSize=1000000
#log4j.appender.APP1.MaxSegmentSize=200000
#log4j.appender.APP1.Encoding=iso-8859-1
log4j.appender.OJDL.ComponentId=OracleProd

この構成により、log4j メッセージが ORACLE_HOME/j2ee/home/log/oc4j/log.xml ファイルに送信されます。LogViewer はこのファイルを読み取り、診断ログとして Application Server Control に表示します。

これは、あるレベルでロガーとして追加できます。たとえば、コンソールへのロギングに加えてルート ロガーに追加するには、次のようにします。

log4j.rootLogger=DEBUG, CON1, OJDL

rootLogger注:との違いがわかりませんrootCategory

注 2: これは、アプリケーション ログではなく、診断ログに表示されます。

于 2011-08-30T17:50:26.150 に答える