Использование log4j в oc4j 10.1.3 - PullRequest
1 голос
/ 27 августа 2009

У меня есть веб-приложение, работающее на OC4J 10.1.3. Я пытаюсь сделать некоторые журналы, используя log4j. Сообщения отображаются в моей консоли IDE, как и ожидалось, но в файл application.log в OC4J ничего не входит Кто-нибудь знает, что мне нужно сделать, чтобы это работало?

Вот мой 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.");

Ответы [ 3 ]

2 голосов
/ 12 сентября 2009

В Руководстве разработчика OC4J указано, как log4j должен использоваться в OC4J .

В частности, log4.properties должны быть помещены в классы WEB-INF /, где они могут быть найдены jar времени выполнения log4j (обычно помещаются в WEB-INF / lib). Размещение артефактов log4j в каталоге applib является плохой практикой, и ее следует избегать.

Я не уверен в этом, но если log4j не пишет в application.log, вы должны проверить содержимое журнала ODL (некоторые подробности конфигурации ODL доступны в Руководстве разработчика ) и если OC4J управляется OPMN, также неплохо проверить журнал консоли управляемого процесса в каталоге opmn / logs.

2 голосов
/ 28 августа 2009

Сконфигурируйте 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
1 голос
/ 30 августа 2011

Я знаю, что это старый вопрос, но сегодня я провел дополнительное исследование.

Оказывается, что OC4J включает OracleAppender для 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 читает и затем отображает в элементе управления сервером приложений как журналы диагностики.

Это может быть добавлено в качестве логгера на некотором уровне. Например, чтобы добавить его к корневому логгеру в дополнение к логингу на консоли:

log4j.rootLogger=DEBUG, CON1, OJDL

Примечание: я не уверен, в чем разница между rootLogger и rootCategory.

Примечание 2. Это отображается в журнале диагностики, а не в журнале приложений.

...