views:

1255

answers:

2

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.");
+1  A: 

Configure OC4J to log the console output to a file.
If you are using the full IAS add this to the opmn.xml

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

If you are using the stanalone OC4j:

  java -jar oc4j.jar -err err.log -out out.log
rodrigoap
+2  A: 

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.

Vineet Reynolds