WinForm和WPF使用log4net

  • A+
所属分类:.NET技术
摘要

一、从Nuget下载lognet.dll 找到log4net之后,单击log4net,右侧会出现你的项目,勾选要安装的项目,然后点击“安装”。

一、从Nuget下载lognet.dll

WinForm和WPF使用log4net

找到log4net之后,单击log4net,右侧会出现你的项目,勾选要安装的项目,然后点击“安装”。

WinForm和WPF使用log4net

 

二、打开app.config,进行如下设置

<?xml version="1.0" encoding="utf-8"?> <configuration>   <!--<startup>          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>     </startup>-->    <configSections>       <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />    </configSections>    <log4net>     <!--定义输出到文件中-->     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">       <!--定义文件存放位置-->       <file value="Log\Error\"/>       <appendToFile value="true"/>       <rollingStyle value="Date"/>       <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/>       <staticLogFileName value="false"/>       <param name="MaxSizeRollBackups" value="100"/>       <layout type="log4net.Layout.PatternLayout">         <!--每条日志末尾的文字说明-->         <!--输出格式-->         <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->         <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>       </layout>     </appender>     <root>       <level value="ERROR"/>       <!--文件形式记录日志-->       <appender-ref ref="RollingLogFileAppender"/>     </root>    </log4net> </configuration>

以上设置中

<file value="Log\Error\"/>  
<datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/>
代表生成路径及格式为:Log\Error\yyyy\yyyyMM\yyyyMMdd.txt
如有需要,可自行修改。

三、WPF:在项目中找到Properties文件夹中找到AssemblyInfo.cs ,设置log4net
  Winform:在项目中找到Program.cs,在Main函数中设置log4net
WPF:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]


WinForm和WPF使用log4net

Winform:
log4net.Config.XmlConfigurator.Configure();


WinForm和WPF使用log4net

以上是Winform程序和WPF程序使用log4net的唯一区别点。

四、建立调用对象。建log类。

    public static class LogTools     {         /// <summary>         /// 用来记录error和warn         /// </summary>         public static log4net.ILog ErrorWarnLog = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);     }

 

五、程序中应用案例

有个地方要注意,调用方式是LogTools.ErrorWarnLog.Error(e),不是LogTools.ErrorWarnLog.Error(e.Message),一开始我是错误的写法,记录的Error信息异常,导致我找了半天,在此提醒下大家。

        /// <summary>         /// 线程工作步骤         /// </summary>     private void Working()       {             try             {                 while (true)                 {                    //线程步骤,略                 }             }             catch (Exception e)             {                 LogTools.ErrorWarnLog.Error(e);             }         }

六、log信息

WinForm和WPF使用log4net

完~