如何处理两个以上的 appender 分别记录

How to handle more than two appenders logging separately

我们正在从 Log4j1 迁移到 log4j2。我能够创建多个文件并在这些文件中添加日志记录,如下所示:

name=PropertiesConfig
appenders = file1, file2

appender.file1.type = File
appender.file1.name = LOG1FILE1
appender.file1.fileName= ./logs/operation.log
appender.file1.layout.type=PatternLayout
appender.file1.layout.pattern= %-d{yyyy MMM dd HH:mm:ss:SSS} GMT %-d{Z} %-5p[%t] %m%n

appender.file2.type = File
appender.file2.name = LOGFILE
appender.file2.fileName= ./logs/Connection.log
appender.file2.layout.type=PatternLayout
appender.file2.layout.pattern= %-d{yyyy MMM dd HH:mm:ss:SSS} GMT %-d{Z} %-5p[%t] %m%n
rootLogger.level = info
rootLogger.additivity = false
rootLogger.appenderRefs = logfile
rootLogger.appenderRef.logfile.ref = LOGFILE

rootLogger.appenderRefs = LOG1FILE1
rootLogger.appenderRef.LOG1FILE1.ref = LOG1FILE1

我需要了解如何为特定类型的附加程序登录一个特定文件。我之前能够在 log4j1 中执行此操作。假设我有两个附加程序,一个用于连接,另一个用于操作,因此在实例化连接时,将日志写入 Connection.log 文件,而当操作执行时,日志记录发生在 operation.log 文件中。我想在 log4j2 中处理同样的事情。

在 Log4j 1.x 中,您将每个附加程序附加到不同的记录器。在 Log4j 2.x 中你只需要做同样的事情:

logger.1.name = BusinessFunction
logger.1.level = TRACE
logger.1.appenderRef.1.ref = LOG1FILE1

logger.2.name = Connection
logger.2.level = TRACE
logger.2.appenderRef.1.ref = LOGFILE

您还应该考虑将根记录器附加到文件。