Java Log4j多附加器

Java Log4j多附加器,java,log4j,Java,Log4j,我使用的是apachelog4j。 我想添加2个附加器。一个用于某种目的,另一个用于其他目的。 日志内容不会同时发送到两个附加器。 让我有两个附加器file1和file2。 然后,file1的记录器打印file1.log中的记录。 file2的andLogger打印file2.log中的记录 您可以使用此snip代码登录2文件: log4j.rootLogger=INFO log4j.appender.debugLog=org.apache.log4j.FileAppender log4j.a

我使用的是apachelog4j。 我想添加2个附加器。一个用于某种目的,另一个用于其他目的。 日志内容不会同时发送到两个附加器。 让我有两个附加器file1和file2。 然后,file1的记录器打印file1.log中的记录。
file2的andLogger打印file2.log中的记录

您可以使用此snip代码登录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
并在需要调用日志时使用此选项:

static final Logger debugLog = Logger.getLogger("debugLogger");
static final Logger resultLog = Logger.getLogger("reportsLogger");
另外,如果您已经有日志并且不想更改日志初始化。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

您可以使用此snip代码登录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
并在需要调用日志时使用此选项:

static final Logger debugLog = Logger.getLogger("debugLogger");
static final Logger resultLog = Logger.getLogger("reportsLogger");
另外,如果您已经有日志并且不想更改日志初始化。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

创建两个附加器,如下所示:

public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
    public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");
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
然后配置Log4j.properties文件,如下所示:

public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
    public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");
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

在代码中使用loggerOne.info()和loggerTwo.info()分别打印文件firstLog.log和secondLog.log。

创建两个附录,如下所示:

public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
    public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");
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
然后配置Log4j.properties文件,如下所示:

public static final Logger loggerOne= LoggerFactory.getLogger("com.mylogger.loggerOne");
    public static final Logger loggerTwo= LoggerFactory.getLogger("com.mylogger.loggerTwo");
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

在代码中使用loggerOne.info()和loggerTwo.info()分别在文件firstLog.log和secondLog.log中打印。

检查此检查是否可能在同一个包/java文件上,信息日志转到文件1,错误日志转到文件2?是否可能在同一个包/java文件上,信息日志转到文件1,错误日志转到文件2?