我正在尝试在发生错误时向自己发送包含最新日志条目的电子邮件。但我不希望收到任何邮件,除非记录了实际的ERROR级别条目,因此我将bufferSize
设置为一个大数字。我的问题是,当记录ERROR级别条目时,仅当实际bufferSize
被命中时,才会触发邮件目标,这意味着自bufferSize
以来我根本没有收到任何邮件太大了我的NLog.config
就像这样:
<targets>
<target name="mailautoflush" xsi:type="AutoFlushWrapper" condition="level >= LogLevel.Error">
<target name="mailbuffer" xsi:type="BufferingWrapper" bufferSize="1000000">
<target name="mail" xsi:type="Mail" ... />
</target>
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="mailautoflush"></logger>
</rules>
我做错了什么?另外,有更好的方法吗?使用AutoFlushWrapper / BufferingWrapper技巧似乎是一个黑客。谢谢!
答案 0 :(得分:2)
它仅在触发LogEvent报告已到达其最终目标后执行刷新。由于LogEvent驻留在缓冲区中,因此永远不会触发刷新。
答案 1 :(得分:0)
您的代码看起来有效。
此外,还有更好的方法吗?使用AutoFlushWrapper / BufferingWrapper技巧似乎是一个黑客。谢谢!
它更像是模块化设计 - 您可以将块彼此组合在一起。