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");
}
}
我是初学者。
我有两个不同的属性文件 - mylog4j1.properties
有fileappender输出到file1,mylog4j2.properties
有fileAppender输出到file2。
我希望myLogger1能够与mylog4j1配置一起使用,并且类似于下一步。
但如果我按上述方式编写代码,我的预期结果并不理想。
预期结果:
file1:1 3
file2:2
实际结果:
file1:1 file2:2 3
我确实尝试过来从stackoverflow中学习其他问题,但即便如此,我也无法弄明白。
请帮我找出我的错误,或者我是否在Log4j框架中犯了概念错误。
答案 0 :(得分:0)
以下代码工作正常,它从两个不同的属性文件“mylog4j1.properties”和“mylog4j2.properties”中获取log4j,并将输出生成为两个输出文件“file1.log”和“file2.log”具有所需的输出。
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
答案 1 :(得分:0)
为什么要使用两个properties
个文件?您可以从1个属性文件中执行此操作。
以下是如何实现
的示例# 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