log4j2:使用属性

时间:2017-07-14 15:05:02

标签: log4j2

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

2 个答案:

答案 0 :(得分:0)

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

  1. 将以下行更改为true:logger.rolling.file.additivity = true

  2. 添加第二个AppenderRef logger.rolling.file.appenderRef.stdout.ref = STDOUT
  3. 此外,您应该删除.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。