log4j2:使用属性登录到滚动文件和标准输出

问题描述 投票:1回答:2

我想要创建一个记录器,同时记录到滚动文件和我的控制台。每个单独的工作完美,但只结合滚动工作。也许我做错了什么,并没有理解log4j2。

我希望有一个人可以帮助我。

我的属性文件如下:

status =错误

name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter

filter.threshold.level = debug

appenders = console,滚动

appender.console.type =控制台

appender.console.name = STDOUT

appender.console.layout.type = PatternLayout

appender.console.layout.pattern =%-4r%-5p [%t]%c - %m%n

appender.rolling.type = RollingFile

appender.rolling.name = RollingFile

appender.rolling.fileName = mypathtofilehere

appender.rolling.filePattern = CrashDesigner-%d {MM-dd-yy-HH-mm-ss} - %i.log.gz

appender.rolling.layout.type = PatternLayout

appender.rolling.layout.pattern =%d {yyyy-MM-dd HH:mm:ss}%-5p%c {1}:%L - %m%n

appender.rolling.policies.type =政策

appender.rolling.policies.size.type = SizeBasedTriggeringPolicy

appender.rolling.policies.size.size = 10MB

appender.rolling.strategy.type = DefaultRolloverStrategy

appender.rolling.strategy.max = 40

loggers = rolling.file

logger.rolling.file.name = com.myapp

logger.rolling.file.level = debug

logger.rolling.file.additivity = false

logger.rolling.file.appenderRefs =滚动

logger.rolling.file.appenderRef.rolling.ref = RollingFile

Route.Level = Debug

rootLogger.appenderRefs = stdout

rootLogger.appenderRef.stdout.ref = STDOUT

log4j2
2个回答
0
投票

我在这看到两种可能性。或

  1. 将以下行更改为true:logger.rolling.file.additivity = true 要么
  2. 添加第二个AppenderRef logger.rolling.file.appenderRef.stdout.ref = STDOUT

你也应该用.appenderRefs删除行。 log4j2中没有这样的appenderRefs实体。


0
投票

每个记录器都可以写入多个appender。为此,它应该引用所有这些appender,这可以使用appenderRefs实现。

logger.rolling.file.appenderRefs = rolling, stdout

logger.rolling.file.appenderRef.rolling.ref = RollingFile

logger.rolling.file.appenderRef.stdout.ref = STDOUT

这将使记录器'rolling.file'触发的每个logevent附加到appenders STDOUT和RollingFle。

© www.soinside.com 2019 - 2024. All rights reserved.