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

架构 2023-07-05 17:29:38
26阅读

 

文中转载微信公众平台「UP技术流」,创作者conan5566 。转截文中请联络UP技术流微信公众号。 

情况

NLog能够将日志輸出到不一样的媒体上,电子邮件是在其中一个,根据电子邮件能够使我们第一时间接到信息内容。应用SMTP协议书根据电子邮件发送日志信息。与FallbackGroup Target非常好地融合在一起,以建立具备好几个SMTP服务器的储备。

配备英语的语法

 
  1. <targets> 
  2.   <target xsi:type="Mail" 
  3.           name="String" 
  4.           header="Layout" 
  5.           footer="Layout" 
  6.           layout="Layout" 
  7.           html="Boolean" 
  8.           addNewLines="Boolean" 
  9.           replaceNewlineWithBrTagInHtml="Boolean" 
  10.           encoding="Encoding" 
  11.           subject="Layout" 
  12.           to="Layout" 
  13.           bcc="Layout" 
  14.           cc="Layout" 
  15.           from="Layout" 
  16.           body="Layout" 
  17.           smtpUserName="Layout" 
  18.           enableSsl="Boolean" 
  19.           secureSocketOption="None|Auto|SslOnConnect|StartTls|StartTlsWhenAvailable"
  20.           smtpPassword="Layout" 
  21.           smtpAuthentication="Enum" 
  22.           smtpServer="Layout" 
  23.           smtpPort="Integer" 
  24.           useSystemNetMailSettings="Boolean" 
  25.           deliveryMethod="Enum" 
  26.           pickupDirectoryLocation="String" 
  27.           timeout="Integer" 
  28.           skipCertificateValidation="Boolean" 
  29.           priority="Layout" 
  30.  /> 
  31. </targets> 

主要参数

基本选择项

  • 名字-总体目标名字。
  • 合理布局选择项
  • 标题文字-标题文字。合理布局
  • 底部-底部。合理布局
  • 合理布局-要3D渲染的文字。必须合理布局。初始值:${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手机客户端请求超时(以ms为企业)。整数金额初始值: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

 
  1. <nlog> 
  2.   <extensions> 
  3.     <add assembly="NLog.MailKit"/> 
  4.   </extensions> 
  5.   ... 

3、config配备电子邮箱信息内容

 
  1. <system.net> 
  2.   <mailSettings> 
  3.     <smtp from="mail@domain.com" deliveryMethod="SpecifiedPickupDirectory"
  4.       <network host="localhost" port="25"/> 
  5.       <specifiedPickupDirectory pickupDirectoryLocation="C:/Temp/Email"/> 
  6.     </smtp> 
  7.   </mailSettings> 
  8. </system.net> 

4、配备日志主要参数

 
  1. <target xsi:type="FallbackGroup"  
  2.         name="mail" 
  3.         returnToFirstOnSuccess="true"
  4.     <target xsi:type="Mail" 
  5.             name="mailserver1" 
  6.             subject="Layout" 
  7.             to="Layout" 
  8.             from="Layout" 
  9.             smtpServer="mx1.example.com"  
  10.             smtpPort="Integer" 
  11.             layout="Layout" /> 
  12.     <target xsi:type="Mail" 
  13.             name="mailserver2"  
  14.             subject="Layout" 
  15.             to="Layout" 
  16.             from="Layout" 
  17.             smtpServer="mx2.example.com"  
  18.             smtpPort="Integer" 
  19.             layout="Layout" /> 
  20.  
  21. </target> 

最终就可以接到日志电子邮件啦。

参照详细地址

https://github.com/nlog/NLog/wiki/Mail-target

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。