我在log4j2上看到很多关于日志重复条目的帖子。解决方案似乎是添加additivity属性并将其设置为false,但似乎对我不起作用。
这是我的log4j2.xml
<Configuration status="DEBUG">
<Appenders>
<Console name="Console" target="SYSTEM_OUT" additivity="false">
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="File" fileName="C:\Laguna\Logs\Laguna.log">
<PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="off">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
<Logger name="br.com.flutuante.laguna" level="trace" additivity="false">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Logger>
</Loggers>
</Configuration>
我在控制台和文件日志中都有重复的日志。 我试过在任何地方添加additivity =“false”,甚至删除ROOT条目,但无法正确使用。
任何人都可以帮助我吗?
也许我在编写错误的课程?
我这样做是为了得到记录器对象......
static final org.apache.logging.log4j.Logger logger = LogManager.getLogger(Laguna.class.getName());
并像这样使用它......
logger.info("Arquivo de configuração carregado");
答案 0 :(得分:2)
可能是因为您缺少Root记录器,如果您不想要任何其他记录,请尝试添加一个level =“OFF”。
编辑:不确定这是否是您想要的,它应该关闭除指定记录器之外的所有日志记录:
<Logger name="br.com.flutuante.laguna" level="trace"/>
<Root level="off">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
或者只是更改Root中的级别以设置默认日志记录级别,同时将指定的记录器设置为跟踪