我想要一个自定义的日志格式,所以我实现了以下类:
public class LoggingLayout extends AbstractStringLayout {
public LoggingLayout() {
super(StandardCharsets.UTF_8);
}
@Override
public String toSerializable(LogEvent event) {
// Create formatted string here...
}
}
但是我无法使配置正常工作。到此为止:
<Configuration strict="true" xmlns="http://logging.apache.org/log4j/2.0/config"
packages="com.path.to.loggingDir">
<Appenders>
<Appender type="Console" name="STDOUT">
<Layout type="LoggingLayout" />
</Appender>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
我定义了包含自定义 LoggingLayout 的包,但即便如此,我还是收到了错误:
main ERROR Console contains an invalid element or attribute "LoggingLayout"
这是为什么?
编辑:请注意,我使用的是 STRICT xml。到目前为止我看到的所有其他答案都没有使用严格的 xml,所以这个问题不是重复的。