我使用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>
如果有人知道其他或更好的解决方案来解决上述问题,我很想知道。