如何使用属性文件在log4j2中创建多个日志文件?

ank*_*kit 5 java log4j2

我正在使用 .property 文件在特定路径中创建日志文件,但我正在使用它创建单个文件。以下是我的属性文件代码:

    status = error
dest = err
name = PropertiesConfig

property.filepath= /ap
property.filename =${filepath}/ai.log
property.filename1 =${filepath}/file1.log
property.filename2 =${filepath}/file2.log

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

appender.file.type = RollingFile
appender.file.name = RootFile1
appender.file.fileName = ${filename}
appender.file.filePattern = ${filepath}/%d{yyyyMMdd}/cpl.mw.%d{yyyyMMdd}.%i.log.gz
appender.file.layout.type = PatternLayout
#appender.file.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.file.policies.type = Policies
appender.file.policies.time.type = TimeBasedTriggeringPolicy
appender.file.policies.time.interval = 1
appender.file.policies.time.modulate = true
appender.file.policies.size.type = SizeBasedTriggeringPolicy
appender.file.policies.size.size=50MB
appender.file.strategy.type = DefaultRolloverStrategy
appender.file.strategy.max = 20

appender.rolling1.type = RollingFile
appender.rolling1.name = RollingFile1
appender.rolling1.fileName = ${filename1}
appender.rolling1.filePattern = ${filepath}/%d{yyyyMMdd}/cpl.mw.%d{yyyyMMdd}.%i.log.gz
appender.rolling1.layout.type = PatternLayout
#appender.rolling1.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling1.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling1.policies.type = Policies
appender.rolling1.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling1.policies.time.interval = 1
appender.rolling1.policies.time.modulate = true
appender.rolling1.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling1.policies.size.size=50MB
appender.rolling1.strategy.type = DefaultRolloverStrategy
appender.rolling1.strategy.max = 20



appender.rolling2.type = RollingFile
appender.rolling2.name = RollingFile2
appender.rolling2.fileName = ${filename2}
appender.rolling2.filePattern = ${filepath}/%d{yyyyMMdd}/cpl.mw.%d{yyyyMMdd}.%i.log.gz
appender.rolling2.layout.type = PatternLayout
appender.rolling2.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling2.policies.type = Policies
appender.rolling2.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling2.policies.time.interval = 1
appender.rolling2.policies.time.modulate = true
appender.rolling2.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling2.policies.size.size=50MB
appender.rolling2.strategy.type = DefaultRolloverStrategy
appender.rolling2.strategy.max = 20

loggers
logger.name=file1
logger.level = debug
logger.additivity = true
logger.appenderRefs = rolling1,stdout
logger.appenderRefs.level = debug
logger.appenderRef.rolling1.ref = RollingFile1
logger.appenderRef.stdout.ref = STDOUT

logger.name=file2
logger.level = debug
logger.additivity = true
logger.appenderRefs = rolling2
logger.appenderRefs.level = debug
logger.appenderRef.rolling2.ref = RollingFile2
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的 xyz.properties 文件,我想使用这个配置文件创建多个日志。我的属性配置文件创建多个文件,但不将不同的日志放入日志文件中。我使用下面的代码从 JAVA 调用它:

private static final Logger logCommon = LogManager.getLogger("file1");
private static final Logger logAnalytics = LogManager.getLogger("file2");

public static void main(String[] args) throws Exception {

    logCommon.info ("file1 Need it save into commons.log file");
    logAnalytics.info ("file2 Only save into analytics.log file");

}
Run Code Online (Sandbox Code Playgroud)

2018-01-22 12:52:23 INFO file2:301 - file2 Only save into analytics.log filelog 放入两个日志文件中。

我参考以下链接:

Log4j2:动态创建多个日志的日志文件

Log4j2 RoutingAppender 的通配符模式

如何使用log4j2(xml中的MDC)将不同的日志写入不同的文件中?

http://logging.apache.org/log4j/2.x/manual/extending.html

我参考以下链接但没有得到任何解决方案:

如何在log4j2中实现多文件追加器

如何避免slf4j日志记录中出现多个日志文件?

log4j2 - 在 weblogic 中生成应用程序特定的日志文件

如何使用log4j创建多个不同内容的日志文件

在此输入链接描述

.properties 文件的 log4j2 KeyValuePair

如何在 log4j2 中创建自定义 Appender?

在 log4j2.properties 中配置异步记录器

如何在log4j2中创建自定义RewritePolicy?

如何在 log4j2 属性中设置类的日志级别

在 log4j2 中增加 OnStartupTriggeringPolicy 的文件索引

如何以 log4j2 xml 格式配置当前工作目标目录的日志文件路径

如何在 log4j2 xml 中配置 RestTemplate 调试日志记录

在 iPhone 应用程序中创建多个日志文件

Log4j2 使用多个附加程序和记录器

如何在log4j2中以编程方式创建多个日志文件?

如何在log4j2中以编程方式创建多个日志文件?

如何在log4j2中指定日志文件

将单独的日志级别记录到 log4j2 属性文件中的单独文件

无法使用 log4j2 中的路由附加程序基于 ThreadContext 映射值创建多个日志文件

如何在log4j2中创建自定义滚动文件附加器 - 自定义文件名

使用 log4j2 的多个线程的不同日志文件

Log4j2 YAML生成多个日志文件问题

如何使用log4j创建多个日志文件

Log4j2 - 以编程方式覆盖日志文件

如何在 log4j2 中创建滚动文件附加器插件

Rem*_*pma 6

additivity=false为两个命名记录器进行设置。

\n\n

另外,添加根记录器配置来告诉 Log4j2 除了 \xe2\x80\x9cfile1\xe2\x80\x9d 和 \xe2\x80\x9cfile2\xe2\x80\x9d 记录器之外将日志记录调用发送到哪里:

\n\n
rootLogger.level = info\nrootLogger.appenderRef.stdout.ref = STDOUT\n
Run Code Online (Sandbox Code Playgroud)\n\n

另外,为您的命名记录器指定一个唯一的前缀:

\n\n
logger.aaa.name = file1\nlogger.aaa.additivity = false\nlogger.aaa.level = debug\nlogger.aaa.appenderRef.rrr.ref = RollingFile1\n\nlogger.bbb.name = file2\nlogger.bbb.additivity = false\nlogger.bbb.level = debug\nlogger.bbb.appenderRef.sss.ref = RollingFile2\n
Run Code Online (Sandbox Code Playgroud)\n


归档时间:

查看次数:

20367 次

最近记录:

7 年,10 月 前