Log4j 多个 appender 独立
Log4j multiple appender independently
我正在使用 apache log4j。
我想添加 2 个附加程序。一个用于某种目的,第二个用于其他目的。
日志内容不会发送到两个附加程序。
让我有 2 个附加程序 file1 和 file2。
然后 file1 的记录器打印 file1.log 中的记录。
andLogger for file2 打印 file2.log 中的记录。
您可以使用此代码登录 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.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
在代码中使用 loggerOne.info() 和 loggerTwo.info() 分别在文件 firstLog.log 和 secondLog.log 中打印。
我正在使用 apache log4j。 我想添加 2 个附加程序。一个用于某种目的,第二个用于其他目的。 日志内容不会发送到两个附加程序。 让我有 2 个附加程序 file1 和 file2。 然后 file1 的记录器打印 file1.log 中的记录。 andLogger for file2 打印 file2.log 中的记录。
您可以使用此代码登录 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.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
在代码中使用 loggerOne.info() 和 loggerTwo.info() 分别在文件 firstLog.log 和 secondLog.log 中打印。