Is it possible to have "debug" and "info" output written to the console while the "info" output is only written to some log file? For example, given this logging:
LOG.debug(fileContent);
LOG.info(fileLength);
What does a corresponding log4j.xml
look like?
-
That is definitely possible. The configuration would look something like this (not checked for syntactic correctness):
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> ... </appender> <appender name="otherAppender" class="org.apache.log4j.FileAppender FileAppender"> ... </appender> <logger name="com.mycompany.mypackage.MyClass"> <level value="info"/> <appender-ref ref="otherAppender" /> </logger> <root> <priority value="debug" /> <appender-ref ref="console" /> </root> </log4j:configuration>
All debug and info messages go to the
console
appender. Info messages go tootherAppender
.Eddie : +1, I would have answered this but you beat me to it.Eddie : I made some small edits to your answer. hope this is OK.Ronald Wildenberg : That's ok :) Thanks! -
Go to this page for some examples.
It's as simple as adding two different appenders to your program, one appender for each type of logging you want to do.
-
With the configuration from Eddie I can only get the "info" output for MyClass. But what I would like to have is that the "info" output of MyClass goes to a file AND the "debug" output of MyClass goes to console.
-
Do as rwwilden suggested but remove this part
<logger name="com.mycompany.mypackage.MyClass">
<level value="info"/>
<appender-ref ref="otherAppender" />
</logger>
Add <param name="Threshold" value="INFO"/> under the otherAppender.
-
Ok, I've got it now:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> ... </appender> <appender name="otherAppender" class="org.apache.log4j.FileAppender FileAppender"> <param name="Threshold" value="INFO"/> ... </appender> <root> <priority value="debug" /> <appender-ref ref="console" /> <appender-ref ref="otherAppender" /> </root> </log4j:configuration>
Thanks for your help!
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.