Log4Net通过QQ发送邮件关于SmtpAppender的相关配置

    log4net记录日志,有时候需要发送不同级别的日志给相关人员达到应急处理。现在我就用自己的个人qq通过smtp发送邮件演示如何配置log4net

首先开启自己qq邮箱smtp配置


然后配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>
    <!--定义邮件发送-->
    <appender name="LogSmtpAppender" type="log4net.Appender.SmtpAppender">
      <authentication value="Basic" />
      <to value="456@qq.com" />
      <from value="123@qq.com" />
      <username value="123@qq.com" />
      <!--qq邮箱三方客户端邮箱授权码-->
      <password value="授权码" />
      <subject value="应用程序错误日志消息"/>
      <EnableSsl value="true" />
      <smtpHost value="smtp.qq.com" />
      <bufferSize value="2048" />
      <!--超长部分是否丢弃-->
      <lossy value="true" />
      <!-- 下面的定义, 就是 日志级别 大于 WARN 的, 才发邮件.  -->
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
      </evaluator>
      <!-- 下面是 定义邮件的格式 -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %m" />
      </layout>
    </appender>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志路径-->
      <!--<param name= "File" value= "log\Log-"/>-->
      <param name= "File" value= "E:\LocalCode\Log4NetDemo\Log\Log-"/>
      <!--是否是向文件中追加日志-->
      <param name= "AppendToFile" value= "true"/>
      <!--log保留天数-->
      <param name= "MaxSizeRollBackups" value= "10"/>
      <!--日志文件名是否是固定不变的-->
      <param name= "StaticLogFileName" value= "false"/>
      <!--日志文件名格式为:2008-08-31.log-->
      <param name= "DatePattern" value= "yyyy-MM-dd".log""/>
      <!--日志根据日期滚动-->
      <param name= "RollingStyle" value= "Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <!-- %loggername %c -->
        <param name="ConversionPattern" value="%d [%t] %-5p %m%n" />
      </layout>
    </appender>

    <!-- 控制台前台显示日志 -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="Info" />
        <foreColor value="Green" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
      </layout>

      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="Info" />
        <param name="LevelMax" value="Fatal" />
      </filter>
    </appender>



    <root>
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="all" />
      <appender-ref ref="LogSmtpAppender"/>
      <appender-ref ref="ColoredConsoleAppender"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>

LogSmtpAppender即为发送邮件的Appender,其中要注意的两个点:

 1、第三方登录qq的密码为qq邮箱设置里面开启POP3/SMTP服务的授权码。

2、EnableSsl 配置为true,否则会报“System.Net.Mail.SmtpException: 命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first ! ”错误,

当然第2点需要知道如何看log4net自己的异常来查找问题,即在config文件配置

<appSettings>

    <add key="log4net.Internal.Debug" value="true"/>

  </appSettings>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值