登录配置:两个具有相同名称的记录器似乎相互覆盖

时间:2020-10-22 13:51:40

标签: spring-boot logback tomcat9

我使用Spring Boot,并且在我的logback.xml配置文件中,我具有三个附加程序:ConsoleAppender,RollingFileAppender和SMTPAppender。

我将追加器应用于记录器,如下所示:

<root level="error">
    <appender-ref ref="CONSOLE" />
</root>
<logger level="info" name="my.app">
    <appender-ref ref="FILE" />
</logger>
<logger level="error" name="my.app">
    <appender-ref ref="EMAIL" />
</logger>

我想做的是:如果有错误,我想通过电子邮件收到通知。否则,应将日志写入日志文件。

错误日志记录按预期方式工作。如果发生错误,则通过电子邮件发送错误日志声明,并将其写入日志文件和控制台。但是信息日志不会写入日志文件。似乎第二个记录器配置将覆盖第一个记录器配置。一旦删除最后一个记录器,信息记录就会按预期写入文件。

关于这件事的一件事非常令人困惑:它已经工作了将近一年!几个月前,我从Tomcat8切换到Tomcat9。从这个时候开始,问题就出现了。

有人有类似的问题吗?我该如何解决?

编辑

现在,我通过为记录器使用不同的名称来解决它:

<root level="error">
    <appender-ref ref="CONSOLE" />
</root>
<logger level="info" name="my.app">
    <appender-ref ref="FILE" />
</logger>
<logger level="error" name="my.app.error">
    <appender-ref ref="EMAIL" />
</logger>

如果有人知道其他或更好的解决方案来解决上述问题,我很想知道。

0 个答案:

没有答案