我想要创建一个同时记录到滚动文件和我的控制台的记录器。每个单独的工作完美,但只结合滚动工作。也许我做错了什么并且没有理解log4j2。
我希望有人可以帮助我。
我的属性文件如下:
status = error
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 = rolling
logger.rolling.file.appenderRef.rolling.ref = RollingFile
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
答案 0 :(得分:0)
我在这看到两种可能性。任
将以下行更改为true:logger.rolling.file.additivity = true
或
logger.rolling.file.appenderRef.stdout.ref = STDOUT
此外,您应该删除.appenderRefs
行。 log4j2中没有这样的appenderRef s 实体。
答案 1 :(得分:0)
每个记录器都可以写入多个appender。为此,它应该引用所有这些appender,这可以使用appenderRefs来实现。
logger.rolling.file.appenderRefs = rolling, stdout
logger.rolling.file.appenderRef.rolling.ref = RollingFile
logger.rolling.file.appenderRef.stdout.ref = STDOUT
这将使logger' rolling.file'触发的每个logevent都附加到appenders STDOUT和RollingFle。