zoukankan      html  css  js  c++  java
  • VS2012 C# 配置log4net

    1 首先下载log4net并添加引用

    我这边使用的 log4net-2.0.8-bin-oldkey 可以从如下链接下载

    链接:https://pan.baidu.com/s/1gcCMvVP0zYl-iPwPFlqOKg
    提取码:wqds

     下载解压后可以在 log4net-2.0.8-bin-oldkey.ziplog4net-2.0.8in et  路径下看到.netframe 2.0/3.5/4.0/4.5 四个版本的dll文件。

    当前项目的netframe版本可以从项目属性中找到。将相应版本的log4net.dll 添加到引用中。

    2 配置Log4Net
    (1)新建一个应用程序配置文件app.config: 右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“ app.config ”,单击“确定”。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <!--类库-->
      <log4net>
        <!--类:名字叫ErrorLog    证明这个类要用来记录错误信息-->
        <logger name="ErrorLog">
          <!--设置这个类的等级是最低-->
          <level value="ALL"/>
          <!--设置这个引用-->
          <appender-ref ref="AppenderError"/>
        </logger>
        <!--类:名字叫InforLog    证明这个类要用来记录普通信息-->
        <logger name="InforLog">
          <level  value="ALL"/>
          <appender-ref ref="AppenderInfor"/>
        </logger>
        <!--提供记录错误信息的类中对错误信息的记录方式,记录方式是将信息日志写进一个文件中-->
        <appender name="AppenderError" type="log4net.Appender.RollingFileAppender">
          <!--设置文件存储的位置-->
          <file value="log\Error\"/>
          <!--是否追加到文件-->
          <appendToFile value="true"/>
          <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
          <rollingStyle value="Date"/>
          <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
          <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/>
          <!--是否只写到一个文件中-->
          <staticLogFileName value="false"/>
          <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
          <param name="MaxSizeRollBackups" value="100"/>
          <!--记录日志信息的格式-->
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
          </layout>
        </appender>
        <!--提供记录普通日志,记录方式是将信息日志写进一个文件中-->
        <appender name="AppenderInfor" type="log4net.Appender.RollingFileAppender">
          <!--设置文件存储的位置-->
          <file value="log\Infor\"/>
          <!--是否追加到文件-->
          <appendToFile value="true"/>
          <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
          <rollingStyle value="Date"/>
          <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
          <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/>
          <!--是否只写到一个文件中-->
          <staticLogFileName value="false"/>
          <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
          <param name="MaxSizeRollBackups" value="100"/>
          <!--记录日志信息的格式-->
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
          </layout>
        </appender>
      </log4net>
    </configuration>

    (2)在AssemblyInfo.cs文件中添加log4net.dll的参数。(这步不做的话也可以通过编译正常运行,但是程序不会生成LOG文件!!!

             AssemblyInfo.cs文件位于项目Properites文件夹,打开后添加如下代码:
             [assembly: log4net.Config.XmlConfigurator(Watch = true)]     

    3 添加一个帮助类LogHelper

     public static class LogHelper
        {
            public static ILog logError = LogManager.GetLogger("ErrorLog");
    
            public static ILog logInfor = LogManager.GetLogger("InforLog");
            
            /// <summary>
            /// 记录错误日志
            /// </summary>
            public static void WriteLog(string infor, Exception ex)
            {
                if (logError.IsErrorEnabled)
                {
                    logError.Error(infor, ex);
                }
            }
            /// <summary>
            /// 记录普通日志
            /// </summary>
            public static void WriteLog(string infor)
            {
                if (logInfor.IsInfoEnabled)
                {
                    logInfor.Info(infor);
                }
            }
        }

    4 功能测试

    运行项目后,在项目的根目录下就会看到log文件夹,看到这个文件就说明log4net.dll的应用已经成功了。
    文件夹的命名是根据你在app.config里面设置的file节点自动生成的,可以根据自己的需要自己设置存放的路径和格式等。

    然后在程序的合适位置添加如下程序:

    LogHelper.WriteLog("received code:" + code);//括号内的字符串即写入log的内容

    实际生成的log效果如下:

     

     以上,

    特别感谢如下无私分享的博主!!!

     

    参考资料:

    1 C# 配置文件App.config的使用操作   https://blog.csdn.net/e295166319/article/details/77839798

    2 C#使用log4net记录日志   https://blog.csdn.net/a_lllll/article/details/87390211

    3 AssemblyInfo.cs文件详解  https://www.cnblogs.com/supersnowyao/p/8478162.html

  • 相关阅读:
    1. 关于GCD的使用(串并行队列和同步异步函数的问题)
    陌院俅颗难炎先当粮澜
    openresty在centos/redhat6.7上部署
    tomcat 日志那点事
    Redhat6.7 切换Centos yum源
    Quartz corn时间表达式(转)
    Jquery控制滚动Div 滚动条事件
    fastjson排序 Map多层嵌套转换自动排序问题终极解决方案
    Spring 外部注入Bean (JAX-WS)
    SSH,如何恢复通过输入密码的方式来登录服务器
  • 原文地址:https://www.cnblogs.com/haozhanggy/p/12068776.html
Copyright © 2011-2022 走看看