gpt4 book ai didi

c# - 使用 C# 使用 NLog 和控制台应用程序仅发送一封包含所有错误的电子邮件

转载 作者:IT王子 更新时间:2023-10-29 04:19:01 28 4
gpt4 key购买 nike

我只想发送一封电子邮件,其中包含我从 C# 控制台应用程序收到的所有错误。

我有目标:

<target xsi:type="File" name="HeelpAdsImport_log" fileName="${basedir}/logs/HeelpAdsImport-${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}" />

<target name="HeelpAdsImport_patrick_email" xsi:type="Mail"
smtpServer="XXXXX"
smtpPort="25"
smtpAuthentication="Basic"
smtpUserName="YYYYYY"
smtpPassword="*ZZZZZZ"
enableSsl="false"
from="DDDDDDDDDD"
to="EEEEEEEEEEE"
layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}"
/>

我有一个信息规则和一个错误规则:

<logger name="*" minlevel="Info" writeTo="HeelpAdsImport_log" />

<logger name="*" minlevel="Error" writeTo="HeelpAdsImport_patrick_email" />

我在代码中有几个相互调用:

logger.Log(LogLevel.Info, " ----- New Ad Success! - auto.id: " + auto.id + " | auto.plate: " + auto.plate);

logger.Log(LogLevel.Error, "| continue error #4 - auto.id: " + auto.id);

最佳答案

您可以使用 BufferingWrapper对于您的电子邮件目标,将多个日志条目分批放入一封电子邮件中。它支持指定时间跨度(设置 flushTimeout 以毫秒为单位)和/或指定数量的日志条目(设置 bufferSize 为条目数)的批处理。

编辑:将当前目标包裹在 <target type="BufferingWrapper"> 中像这样:

<target xsi:type="BufferingWrapper"
name="MailBuffer"
slidingTimeout="false"
bufferSize="100"
flushTimeout="-1">
<target name="HeelpAdsImport_patrick_email" xsi:type="Mail"
smtpServer="XXXXX"
smtpPort="25"
smtpAuthentication="Basic"
smtpUserName="YYYYYY"
smtpPassword="*ZZZZZZ"
enableSsl="false"
from="DDDDDDDDDD"
to="EEEEEEEEEEE"
layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}${newline}"
/>
</target>

编辑 2: 你调用 LogManager.Flush()在退出程序之前?

编辑 3: ${newline}布局渲染器应该在您的电子邮件中产生一个换行符(在上面的 layout 属性的末尾)。

关于c# - 使用 C# 使用 NLog 和控制台应用程序仅发送一封包含所有错误的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com