我正在使用NLog,而且我在记录方面非常陌生。我创建了日志文件,但不知怎的,我有问题发送电子邮件。我遵循了所有指示,但无法做到。
web.config中配置标记中的邮件设置:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory" from="some@some.org">
<network host="localhost"/>
<specifiedPickupDirectory pickupDirectoryLocation="d:\tmp\email"/>
</smtp>
</mailSettings>
</system.net>
这是nlog.config中的目标:
<target name="Mail" xsi:type="Mail" html="true" subject="Error Received"
body="${message}"
to="some1@some.com"
from="some@gmail.com"
encoding="UTF-8"
smtpUserName="some@some.com"
enableSsl="false"
smtpPassword="password"
smtpAuthentication="Basic"
smtpServer="smtp.some.com"
smtpPort="25" />
我使用的规则:
<logger name="*" minlevel="Error" writeTo="Mail" />
我打电话给记录器:
Logger logger = LogManager.GetCurrentClassLogger();
try{ //something }
catch(Exception ex){ logger.Error(ex); }
而且我对设置和配置的位置感到很困惑。谢谢。
答案 0 :(得分:2)
正文是一种布局格式,不确定它是否会处理$ {message}标记。将$ {message]更改为nlog.config中的布局名称,或将其保留为$ {message} $ {newline}默认值。
您可以启用Internal Debugging
将顶级XML父级更改为
<nlog internalLogFile="c:\log.txt" internalLogLevel="Trace">
这可能会让您对此问题有所了解。可能是服务器的身份验证问题或其他问题。
由于您在目标中指定了所有服务器信息,因此不需要web.config设置。
不确定它是否已修复,但您应该向目标添加超时=“10000”,以便关闭连接。
在GMail的NLog Wiki中有一个非常好的例子可以使用