簡體   English   中英

通過電子郵件發送錯誤

[英]Sending error by email

我想收到我的郵件中的應用程序錯誤。 將錯誤記錄到文件正常工作。

我在版本1.2.13中使用log4net。 我在互聯網上閱讀了很多示例,但是都沒有用。 請幫助我,並給我一些建議,我應該改變和改進。

這是我的app.config;

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net debug="false"> <!-- RollingLogFileAppender-->
    <appender name="RollingFileMessages" type="log4net.Appender.RollingFileAppender">
      <file value="logs/CSVReader.log" />
      <appendToFile value="true" />
      <maximumFileSize value="1MB"/>
      <maxSizeRollBackups value="9"/>      
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <param name="StaticLogFileName" value="true"/>      
      <param name="RollingStyle" value="Date"/>
      <param name="DatePattern" value="yyyy-MM-dd"/>      
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %type.%method – %message%newline"/>
      </layout>
    </appender>

    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
      <threshold value="ALL" />
      <to value="mail@gmail.com" />
      <from value="mail@gmail.com" />
      <subject value="log4net err msg - My ASP.NET app" />
      <smtpHost value="smtp.gmail.com" />
      <port value="587"/>
      <authentication value="Basic" />
      <username value="mail@gmail.com"/>
      <password value="passw1"/>
      <EnableSsl value="true" />
      <bufferSize value="1" />
      <lossy value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <conversionPattern value="%property{log4net:HostName} :: %level :: %message 
      %newlineLogger: %logger%newlineThread: %thread%newlineDate: 
      %date%newlineNDC: %property{NDC}%newline%newline" />
      </layout>
    </appender>

    <logger  name="WebAppLog">
      <level value="ALL" />
      <appender-ref ref="RollingFileMessages" />
      <appender-ref ref="SmtpAppender" />
    </logger>
  </log4net>  
</configuration>

在我的應用程序中:

public static readonly ILog log = LogManager.GetLogger("WebAppLog");
log4net.Config.XmlConfigurator.Configure();

log.Info(" Form1 : Info ");
log.Warn(" Form1 : Warn ");
log.Debug(" Form1: Debug ");

我究竟做錯了什么 ? 請給我一些建議嗎? 非常感謝。

您的smtp附加程序設置為Lossy = true ,這將阻止發送事件; 在附加程序上設置“有損”會推遲決定是否必須將事件記錄到您需要配置的評估程序的決定。 默認情況下,未配置任何評估程序意味着不記錄任何消息。

添加評估器(默認情況下,vanilla log4net中只有LevelEvaluator )或將有損參數設置為false。 有關有損配置的更多信息,請參見此博客文章 (這很可能是您想要的,即僅在發生錯誤時才接收郵件)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM