How to log to multiple log files with log4j
March 6, 2011 Comments
Back to Java coding!
We have a Java application that calls an external application and since it gets called quite often we figured we should probably log its standard output and standard error streams to a separate log file so we could easily locate issues with it later. This would also allow us to create a different message format for it and different handlers.
Luckily, it turned out that this is pretty easy to do with log4j, simply edit your log4j.properties file and add acategory (which is basically another logger).
For example:
# Add a new category/logger called "ExternalAppLogger" and specify # the log level ("INFO") and the appender name ("extAppLogFile"). log4j.category.ExternalAppLogger=INFO, extAppLogFile # Set the appender settings log4j.appender.extAppLogFile=org.apache.log4j.RollingFileAppender log4j.appender.extAppLogFile.File=D:/MyCoolApp/logs/external-app.log log4j.appender.extAppLogFile.MaxFileSize=20000KB log4j.appender.extAppLogFile.MaxBackupIndex=10 log4j.appender.extAppLogFile.layout=org.apache.log4j.PatternLayout log4j.appender.extAppLogFile.layout.ConversionPattern=%d %5p %C{1}: %n%m%n
Now in your Java code, you can create a separate Logger object for the above:
Logger extAppLogger = Logger.getLogger("ExternalAppLogger") extAppLogger.info("This message will be written to D:/MyCoolApp/logs/external-app.log.")
Tags: howto, python, tech, software development, java