我正在使用NLog v2测试版来记录创建消息并将消息发送到第三方服务的VB.NET .DLL。我让它在记录到文件时工作得很好,但现在希望它还能通过电子邮件发送它自动捕获的错误。以下是我的NLog.config文件的相关部分:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="papercut" xsi:type="BufferingWrapper" bufferSize="100">
<target xsi:type="PostFilteringWrapper" defaultFilter="level >= LogLevel.Debug">
<target xsi:type="Mail"
name="papercut"
subject="Your app has errors"
to="ToAddress@Domain.com"
from="FromAddress@Domain.com"
smtpServer="127.0.0.1"
smtpPort="25"
body={longdate}|{message} />
</target>
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="papercut" />
</rules>
</nlog>默认情况下,它只会在电子邮件正文中列出记录的消息。我想在此之前记录日期/时间,所以我一直在尝试body=部分,但没有用(它要么没有正确地计算变量,要么使NLog崩溃)。有人能给我一个关于如何配置NLog来做这件事的指针吗?
发布于 2011-06-24 23:00:43
似乎主体配置中缺少$,这可能是NLog崩溃的原因。
body = "${longdate}| ${message}"有关邮件目标的更多信息
https://github.com/NLog/NLog/wiki/Mail-target
您还可以为NLog错误本身启用日志记录,如下所示。
<nlog
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
throwExceptions="true"
internalLogFile="Nloglog.log"
internalLogLevel="Warn"
>
.....
</nlog>https://stackoverflow.com/questions/5737329
复制相似问题