温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

日志框架NLog之怎么将日志发送到邮件

发布时间:2021-10-19 09:17:55 来源:亿速云 阅读:130 作者:iii 栏目:开发技术

这篇文章主要讲解了“日志框架NLog之怎么将日志发送到邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“日志框架NLog之怎么将日志发送到邮件”吧!

背景

NLog可以将日志输出到不同的媒介上,邮件是其中一个,通过邮件可以让我们第一时间收到信息。使用SMTP协议通过电子邮件发送日志消息。与FallbackGroup  Target很好地结合在一起,以创建具有多个SMTP主机的后备。

配置语法

<targets>   <target xsi:type="Mail"           name="String"           header="Layout"           footer="Layout"           layout="Layout"           html="Boolean"           addNewLines="Boolean"           replaceNewlineWithBrTagInHtml="Boolean"           encoding="Encoding"           subject="Layout"           to="Layout"           bcc="Layout"           cc="Layout"           from="Layout"           body="Layout"           smtpUserName="Layout"           enableSsl="Boolean"           secureSocketOption="None|Auto|SslOnConnect|StartTls|StartTlsWhenAvailable"*           smtpPassword="Layout"           smtpAuthentication="Enum"           smtpServer="Layout"           smtpPort="Integer"           useSystemNetMailSettings="Boolean"           deliveryMethod="Enum"           pickupDirectoryLocation="String"           timeout="Integer"           skipCertificateValidation="Boolean"           priority="Layout"  /> </targets>

参数

常规选项

  • 名称-目标名称。

  • 布局选项

  • 标头-标头。布局

  • 页脚-页脚。布局

  • 布局-要渲染的文本。需要布局。默认值:${message}${newline}。与身体属性相同

  • html-指示是否以HTML而不是纯文本形式发送消息。布尔默认值:false

  • addNewLines-指示是否在日志条目之间添加新行。布尔型

  • replaceNewlineWithBrTagInHtml -指示是否在身体换行字符应改为

  • 标签。布尔默认值:false

  • 编码-用于发送电子邮件的编码。编码默认值:UTF-8讯息选项

  • 主题-邮件主题。需要布局。默认值:来自$ {machinename}上NLog的消息

  • 到-收件人的电子邮件地址,用分号分隔(例如john@domain.com;jane@domain.com)。布局。从NLog  4.0开始,不再需要此字段,但应定义To,BCC或CC,否则将引发异常。

  • 密件抄送-用分号分隔的密件抄送电子邮件地址(例如john@domain.com;jane@domain.com)。布局

  • cc-用分号分隔的CC电子邮件地址(例如john@domain.com;jane@domain.com)。布局

  • 来自-发件人的电子邮件地址(例如joe@domain.com)。需要布局。

  • 体-同布局属性。邮件消息正文(对于一封邮件中发送的每条日志消息重复)。布局默认值:${message}${newline}

  • 优先级-邮件优先级。

    • 当使用不带NLog.MailKit软件包的NLog时,请使用System.Net.Mail.MailPriority。Low,Normal,High。

    • 使用版本最高为v3.1的Nlog +  NLog.MailKit版本时,有效值为MimeKit.MessagePriority。NonUrgent,Normal,Urgent

    • NLog.MailKit V3.2和上述接受NonUrgent / Low,Normal,Urgent / High为了向后兼容MTP选项

  • smtpUserName-用于连接到SMTP服务器的用户名(在SmtpAuthentication设置为“基本”时使用)。布局

  • enableSsl-指示在与SMTP服务器通信时是否应使用SSL(安全套接字层)。布尔值默认值:False。注意:端口465不适用于SSL。见问题1226

  • secureSocketOption-仅在NLog.Mailkit  2.1+中。提供一种指定SSL和/或TLS加密的方式。默认为StartTlsWhenAvailable。选项:无,自动,SslOnConnect,StartTls和StartTlsWhenAvailable。如果enableSsl设置为true,将使用SslOnConnect

  • smtpPassword-用于针对SMTP服务器进行身份验证的密码(在SmtpAuthentication设置为“基本”时使用)。布局

  • smtpAuthentication -SMTP身份验证模式。默认值:无

可能的值:

  • 基本-基本-用户名和密码。

  • 无-无身份验证。

  • Ntlm -NTLM身份验证。

  • smtpServer-用于发送的SMTP服务器。需要布局。

  • smtpPort -SMTP服务器正在侦听的端口号。整数缺省值:25。注意:端口465不支持SSL。见问题1226

  • useSystemNetMailSettings-从system.net/mailSettings强制使用smtp配置。布尔默认值:False

  • 超时-表示SMTP客户端超时(以毫秒为单位)。整数默认值:10000(10秒)

  • PickupDirectoryLocation-获取或设置应用程序用来保存要由本地SMTP服务器处理的邮件的文件夹(在NLog 4.2中引入)。

  • deliveryMethod-指定将如何处理传出电子邮件(在NLog 4.2中引入)。默认值:网络可能的值:

    • 网络-电子邮件通过网络发送到SMTP服务器。

    • PickupDirectoryFromIis-电子邮件被复制到本地Internet信息服务(IIS)使用的提取目录中以进行传递。

    • SpecifiedPickupDirectory-将电子邮件复制到PickupDirectoryLocation属性指定的目录中,以供外部应用程序传递。

skipCertificateValidation-仅适用于NLog.MailKit。在NLog.MailKit 1.1中引入-跳过SSL认证检查

实现方式

1、vs添加引用NLog.MailKit

2、配置nlog

<nlog>   <extensions>     <add assembly="NLog.MailKit"/>   </extensions>   ...

3、config配置邮箱信息

<system.net>   <mailSettings>     <smtp from="mail@domain.com" deliveryMethod="SpecifiedPickupDirectory">       <network host="localhost" port="25"/>       <specifiedPickupDirectory pickupDirectoryLocation="C:/Temp/Email"/>     </smtp>   </mailSettings> </system.net>

4、配置日志参数

<target xsi:type="FallbackGroup"          name="mail"         returnToFirstOnSuccess="true">     <target xsi:type="Mail"             name="mailserver1"             subject="Layout"             to="Layout"             from="Layout"             smtpServer="mx1.example.com"              smtpPort="Integer"             layout="Layout" />     <target xsi:type="Mail"             name="mailserver2"              subject="Layout"             to="Layout"             from="Layout"             smtpServer="mx2.example.com"              smtpPort="Integer"             layout="Layout" />  </target>

最后就可以收到日志邮件啦。

感谢各位的阅读,以上就是“日志框架NLog之怎么将日志发送到邮件”的内容了,经过本文的学习后,相信大家对日志框架NLog之怎么将日志发送到邮件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI