2009-08-27 5 views
1

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

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

где log4j.properties? – skaffman

+0

В корне моего исходного дерева проекта, пакета по умолчанию. –

ответ

2

Настройка OC4J для входа консольного вывода в файл.
Если вы используете полные IAS добавьте к этому opmn.xml

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

Если вы используете stanalone OC4J:

java -jar oc4j.jar -err err.log -out out.log 
2

The OC4J Developer's Guide states how log4j is to be used in OC4J.

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

Я не уверен в этом, но если log4j не пишет в application.log, вы должны проверить содержимое журнала ODL (некоторые детали конфигурации ODL доступны в Developer's Guide), и если OC4J управляется OPMN также рекомендуется проверить журнал управляемой консоли управления в каталоге opmn/logs.

1

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

Оказывается, OC4J включает в себя OracleAppender for 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 сообщения в/j2ee/дома/LOG/файл ORACLE_HOME OC4J/log.xml, который читает LogViewer и затем отображается в Application Server Control как журналы диагностики.

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

log4j.rootLogger=DEBUG, CON1, OJDL 

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^