在 oc4j 10.1.3 中使用 log4j
我有一个在 OC4J 10.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.");
I have a web application running on OC4J 10.1.3. I am trying to do some logging using log4j. The messages show up in my IDE console as expected, but nothing is going into the application.log in OC4J. Anybody know what I need to do to get this working?
Here's my 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
And in my java classes I'm doing this:
Logger logger = Logger.getLogger(getClass().getName());
logger.debug("Test message.");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
配置 OC4J 将控制台输出记录到文件中。
如果您使用完整的 IAS,请将其添加到 opmn.xml
如果您使用独立 OC4j:
Configure OC4J to log the console output to a file.
If you are using the full IAS add this to the opmn.xml
If you are using the stanalone OC4j:
OC4J 开发人员指南说明了 log4j 的用途用于 OC4J。
具体来说,log4.properties 应放置在 WEB-INF/classes 中,log4j 运行时 jar 可以找到它(通常放置在 WEB-INF/lib 中)。将 log4j 工件放在 applib 目录中是不好的做法,应该避免。
我不确定这一点,但如果 log4j 没有写入 application.log,那么您必须检查 ODL 日志的内容(ODL 配置的一些详细信息可在 开发人员指南),如果 OC4J 由 OPMN 管理,那么也是一个好主意检查 opmn/logs 目录中的托管进程控制台日志。
The OC4J Developer's Guide states how log4j is to be used in OC4J.
Specifically, log4.properties should be placed in WEB-INF/classes where it can be located by the the log4j runtime jar (usually placed in WEB-INF/lib). Placing the log4j artifacts in the applib directory is bad practice and should be avoided.
I'm unsure of this, but if log4j is not writing to application.log, then you must check the contents of the ODL log (some details of ODL configuration are available in the Developer's Guide), and if OC4J is managed by OPMN it is also a good idea to check the managed process console log in the opmn/logs directory.
我知道这是一个老问题,但今天早些时候我对此做了一些额外的研究。
事实证明,OC4J 包含一个
OracleAppender
对于 Log4j。这是 log4j.properties 中的示例配置:然后可以将其添加为某种级别的记录器。例如,除了记录到控制台之外,要将其添加到根记录器:
注意:我不确定
rootLogger
和rootCategory
之间有什么区别。注 2:这会显示在诊断日志中,而不是应用程序日志中。
I know this is an old question, but I did some additional research into this earlier today.
It turns out that OC4J includes an
OracleAppender
for Log4j. This is the sample configuration for it that would go in log4j.properties:This can then be added as a logger at some level. For example, to add it to the root logger in addition to logging to the console:
Note: I'm not sure what the difference is between
rootLogger
androotCategory
.Note 2: This shows up in the Diagnostics log rather than the application log.