zoukankan      html  css  js  c++  java
  • C# log4net 使用

      利用log4net写入异常类日志,在网上搜索一阵之后便想记录下来,以便后期使用,同时希望帮到大家。 

    第一步:使用管理NuGet程序包导入log4net.dll

    导入成功后会在引用下显示相应的log4net,存在这一步就证明导入成功。

    第二步:在AssemblyInfo.cs文件中添加log4net.dll的参数。

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

    第三步:新增一个名为log4net.config配置文件,并将属性"复制到输出目录"修改为"如果较新则复制"

    第四步:打开log4net在configuration节点下添加以下代码

    <log4net>
      <!--错误日志类-->
      <logger name="logerror"><!--日志类的名字-->
        <level value="ALL" /><!--定义记录的日志级别-->
        <appender-ref ref="ErrorAppender" /><!--记录到哪个介质中去-->
      </logger>
      <!--信息日志类-->
      <logger name="loginfo">
        <level value="ALL" />
        <appender-ref ref="InfoAppender" />
      </logger>
      <!--错误日志附加介质-->
      <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
        <param name="File" value="Log\LogError\" /><!--日志输出到exe程序这个相对目录下-->
        <param name="AppendToFile" value="true" /><!--输出的日志不会覆盖以前的信息-->
        <param name="MaxSizeRollBackups" value="100" /><!--备份文件的个数-->
        <param name="MaxFileSize" value="10240" /><!--当个日志文件的最大大小-->
        <param name="StaticLogFileName" value="false" /><!--是否使用静态文件名-->
        <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" /><!--日志文件名-->
        <param name="RollingStyle" value="Date" /><!--文件创建的方式,这里是以Date方式创建-->
        <!--错误日志布局-->
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
        </layout>
      </appender>
      <!--信息日志附加介质-->
      <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Log\LogInfo\" />
        <param name="AppendToFile" value="true" />
        <param name="MaxFileSize" value="10240" />
        <param name="MaxSizeRollBackups" value="100" />
        <param name="StaticLogFileName" value="false" />
        <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
        <param name="RollingStyle" value="Date" />
        <!--信息日志布局-->
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
        </layout>
      </appender>
    </log4net>

    第五步:添加一个帮助类LogHelper用于记录日志信息

    public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }
    
        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }

    第六步:写一段异常代码进行测试

    private void Form1_Load(object sender, EventArgs e)
    {
    
        try
        {
            string a = "FF";
            int b = Convert.ToInt32(a);
        }
        catch (Exception ex)
        {
            LogHelper.WriteLog(ex.Message.ToString(), ex);
        }
    }

    最后在debug中找到Log文件夹可以查看错误信息

    参考: https://www.cnblogs.com/vichin/p/6022612.html

      链接: https://pan.baidu.com/s/1Dz0RP2uHMugJFonh662HiA

      提取码: hyvy

  • 相关阅读:
    MobaXtern显示中文
    SD卡识别——记一次stm32识别BanqSD卡 V2.0识别失败的经历。
    《Java 底层原理》Jvm GC算法
    《Java 并发编程》ThreadLock详解
    《Java 底层原理》Jvm对象结构和指针压缩
    《Java 底层原理》Java内存模型
    《Java 底层原理》Java 字节码详解
    jinjia2中的变量使用
    jsonify和json的区别
    虚拟环境是什么?有什么用?怎么用?
  • 原文地址:https://www.cnblogs.com/swjian/p/9810914.html
Copyright © 2011-2022 走看看