import org.apache.log4j.*;
public class LoggingInJava {
public static void main(String[] args) {
PropertyConfigurator.configure("mylog4j1.properties");
myLogger.info("1");
PropertyConfigurator.configure("mylog4j2.properties");
myLogger2.info("2");
myLogger.info("3");
}
}
I am beginner in logging.
I have two different properties files - mylog4j1.properties
has fileappender which outputs to file1 and mylog4j2.properties
has fileAppender which outputs to file2 .
I want myLogger1 to work with mylog4j1 configurations and similar for next .
But if I write my code as above , I am not getting expected result .
Expected Result:
file1: 1 3
file2: 2
Actual Result:
file1: 1 file2: 2 3
I did try learning from other questions from stackoverflow but even then I couldnt figure it out .
Please help me find my mistake or whether I am making conceptual error in Log4j framework.
the below code is working fine and it is taking log4j from two different properties files "mylog4j1.properties" and "mylog4j2.properties" and the output is generated to two output files "file1.log" and "file2.log" with the desired output.
import org.apache.log4j.*;
public class LoggingInJava {
static final Logger myLogger1 = Logger.getLogger("mylog4j1");
static final Logger myLogger2 = Logger.getLogger("mylog4j2");
public static void main(String[] args) {
PropertyConfigurator.configure("mylog4j1.properties");
myLogger1.info("1");
PropertyConfigurator.configure("mylog4j2.properties");
myLogger2.info("2");
myLogger1.info("3");
}
}
mylog4j1.properties
--------------------
log4j.rootLogger=OFF
log4j.appender.myLogger1=org.apache.log4j.FileAppender
log4j.appender.myLogger1.File=logs/file1.log
log4j.appender.myLogger1.layout=org.apache.log4j.PatternLayout
log4j.appender.myLogger1.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.category.mylog4j1=TRACE, myLogger1
log4j.additivity.mylog4j1=false
mylog4j2.properties
--------------------
log4j.rootLogger=OFF
log4j.appender.myLogger2=org.apache.log4j.FileAppender
log4j.appender.myLogger2.File=logs/file2.log
log4j.appender.myLogger2.layout=org.apache.log4j.PatternLayout
log4j.appender.myLogger2.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.category.mylog4j2=TRACE, myLogger2
log4j.additivity.mylog4j2=false
Why you use two properties
files? You can do this from 1 properties file.
Here is the sample for, how implement that
# Direct log messages to a log file
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/home/logs/firstLog.log
log4j.appender.FILE.MaxFileSize=1MB
log4j.appender.FILE.MaxBackupIndex=1
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}] %m%n
log4j.appender.SECOND=org.apache.log4j.RollingFileAppender
log4j.appender.SECOND.File=/home/logs/secondLog.log
log4j.appender.SECOND.MaxFileSize=1MB
log4j.appender.SECOND.MaxBackupIndex=1
log4j.appender.SECOND.layout=org.apache.log4j.PatternLayout
log4j.appender.SECOND.Append=true
log4j.appender.SECOND.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}] %m%n
# Root logger option
log4j.rootLogger=TRACE, FILE
log4j.category.testngLogger=DEBUG, SECOND
log4j.additivity.testngLogger=false
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.