我在 logback 中使用 SMTPAppender,配置如下:
<appender name="ALARM-APPENDER" class="ch.qos.logback.classic.net.SMTPAppender">
...
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<maxNumberOfBuffers>256</maxNumberOfBuffers>
</cyclicBufferTracker>
...
</appender>
但是我在运行时遇到了这个错误:
10:00:48,171 |-ch.qos.logback.core.joran.spi.Interpreter@82:24 中的错误 - [maxNumberOfBuffers] 没有适用的操作,当前 ElementPath 是 [[configuration][appender][cyclicBufferTracker][maxNumberOfBuffers ]]
所以我重新检查了官方手册:
http
:
//logback.qos.ch/manual/appenders.html#bufferManagement 它没有告诉 maxNumberOfBuffers 应该配置到哪里。
幸运的是,我在官方文档中找到了一个配置示例: http://logback.qos.ch/recipes/emailPerTransaction.html
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<maxNumberOfBuffers>512</maxNumberOfBuffers>
</cyclicBufferTracker>
长得一样。。。
然后我检查了 Class CyclicBufferTracker 的最新 java-doc:
http
://logback.qos.ch/apidocs/ch/qos/logback/core/spi/CyclicBufferTracker.html 此处或其父类中没有“setMaxNumberOfBuffers”方法。
作为最后的手段,我检查了 github 中的源代码更改历史记录:
https ://github.com/qos-ch/logback/blob/a052f15d09636698c96fcdb753da3270f5c01b11/logback-core/src/main/java/ch/qos/logback/core/ spi/CyclicBufferTracker.java
在原版中,当它还是一个接口的时候,里面有“setMaxNumberOfBuffers”和“setBufferSize”两个方法。
https://github.com/qos-ch/logback/commit/773193a09922ab2a1dd70e4978be8cdf4e050f6e
2013 年 4 月 25 日,删除了方法“setMaxNumberOfBuffers”。
现在有一个问题:我应该在哪里配置“setMaxNumberOfBuffers”?
(“setMaxNumberOfBuffers”与“setBufferSize”的含义完全不同)
它甚至无法在 logback 的存储库中找到“maxNumberOfBuffers”字符串:
https ://github.com/qos-ch/logback/search?q=maxNumberOfBuffers
顺便说一句,我正在使用最新版本的 logback(1.1.2)。
多谢你们!