我想在邮件上收到我的申请错误。 将错误记录到文件工作核心。
我在版本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 ");
我做错了什么?请给我一些建议? 非常感谢。
答案 0 :(得分:1)
您的smtp appender设置为Lossy = true
,这将阻止发送事件;在appender上设置Lossy会决定是否必须将事件记录到您需要配置的评估程序。默认情况下,未配置评估程序意味着不记录任何消息。
添加评估程序(默认情况下,在vanilla log4net中只有LevelEvaluator
)或将lossy参数设置为false。有关有损配置的更多信息,请参阅this blog post(这可能就是您想要的,即仅在发生错误时接收邮件)