简体   繁体   English

Log4j多个追加器独立

[英]Log4j multiple appender independently

I am using apache log4j. 我正在使用apache log4j。 I want to add 2 appenders. 我想添加2个追加程序。 one for some purpose and 2nd for other. 一个用于某些目的,第二个用于其他目的。 The log content are not going to both appenders. 日志内容不会同时发送给两个附加程序。 Let I have 2 appenders file1 and file2. 我有2个附加程序file1和file2。 then Logger for file1 prints the record in file1.log. 然后file1的Logger在file1.log中打印记录。 andLogger for file2 prints the record in file2.log. andLogger for file2将在file2.log中打印记录。

You can use this snip code to log in 2 file: 您可以使用此代码段登录2个文件:

log4j.rootLogger=INFO

log4j.appender.debugLog=org.apache.log4j.FileAppender
log4j.appender.debugLog.File=logs/debug.log
....

log4j.appender.reportsLog=org.apache.log4j.FileAppender
log4j.appender.reportsLog.File=logs/reports.log
....

log4j.category.debugLogger=TRACE, debugLog
log4j.additivity.debugLogger=false

log4j.category.reportsLogger=DEBUG, reportsLog
log4j.additivity.reportsLogger=false

And use this when you need to call log: 并在需要调用日志时使用它:

static final Logger debugLog = Logger.getLogger("debugLogger");
static final Logger resultLog = Logger.getLogger("reportsLogger");

Also if you already have log and dont want to change the log init. 另外,如果您已经有日志并且不想更改日志初始化。 Log4j support you specify base on package or full quality pattern. Log4j支持您根据包装或完整质量模式指定。

log4j.rootLogger=DEBUG, CONSOLE

# Each package has different appender name     
log4j.logger.com.mycorp.project.first=DEBUG, FIRST
log4j.logger.com.mycorp.project.second=DEBUG, SECOND

log4j.appender.FIRST=org.apache.log4j.RollingFileAppender
log4j.appender.FIRST.File=./first.log
log4j.appender.FIRST.layout=org.apache.log4j.PatternLayout

log4j.appender.SECOND=org.apache.log4j.RollingFileAppender
log4j.appender.SECOND.File=./second.log
log4j.appender.SECOND.layout=org.apache.log4j.PatternLayout

Create Two appenders like below: 创建两个附加器,如下所示:

public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
    public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");

Then configure your Log4j.properties file like below: 然后配置您的Log4j.properties文件,如下所示:

log4j.rootLogger=INFO,file ,console

log4j.logger.com.mylogger.loggerOne=INFO,firstLog
log4j.appender.firstLog.File=C:/Imran/logs/firstLog.log
log4j.appender.firstLog.DatePattern='.'yyyy-MM-dd
log4j.appender.firstLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.firstLog.layout=org.apache.log4j.PatternLayout
log4j.appender.firstLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%m%n

log4j.logger.com.mylogger.loggerTwo=INFO,secondLog
log4j.appender.secondLog.File=C:/Imran/logs/secondLog.log
log4j.appender.secondLog.DatePattern='.'yyyy-MM-dd
log4j.appender.secondLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.secondLog.layout=org.apache.log4j.PatternLayout
log4j.appender.secondLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%m%n

Use loggerOne.info() and loggerTwo.info() in you code to print in the file firstLog.log and secondLog.log respectively. 在代码中使用loggerOne.info()和loggerTwo.info()分别在文件firstLog.log和secondLog.log中打印。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM