我有以下简单的log4j2配置,它只是将消息记录到控制台stdout和一个文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<RandomAccessFile name="FILE" fileName="app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</RandomAccessFile>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n" />
</Console>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="FILE" />
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
它工作正常,但如果我改为JSON配置,如果不起作用,如果有人有任何线索?
{ "configuration":
{
"appenders": {
"RandomAccessFile": { "name": "FILE", "fileName": "app.log",
"PatternLayout": { "pattern": "%d %p %c{1.} [%t] %m%n" }
},
"Console": { "name": "STDOUT",
"PatternLayout": { "pattern": "%m%n" }
}
},
"loggers": {
"root": { "level": "trace",
"AppenderRef": { "ref": "STDOUT" },
"AppenderRef": { "ref": "FILE" }
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
log4j2 JSON(或任何JSON)不允许存在两个"AppenderRef"条目,因此您应该使用更像下面的配置
{ "configuration":
{
"appenders": {
"RandomAccessFile": { "name": "FILE", "fileName": "app.log",
"PatternLayout": { "pattern": "%d %p %c{1.} [%t] %m%n" }
},
"Console": { "name": "STDOUT",
"PatternLayout": { "pattern": "%m%n" }
}
},
"loggers": {
"root": { "level": "trace",
"AppenderRef": [
{ "ref": "STDOUT" },
{ "ref": "FILE" }
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用'appender-ref'代替AppenderRef
| 归档时间: |
|
| 查看次数: |
1159 次 |
| 最近记录: |