zoukankan      html  css  js  c++  java
  • VS2012 C#使用/配置Log4Net

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。

    十年河东十年河西,莫欺少年穷

    学无止境,精益求精  

    本节探讨如何在VS2012中使用Log4Net

    1、首先在项目中添加Nuget程序包...

     2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待>

    3、在项目中添加一个Config文件,并命名为:Log4Net.config

    截图中配置的XML代码如下:

    复制代码
    <log4net>
      <logger name="logerror">
        <level value="ERROR" />
        <appender-ref ref="ErrorAppender" />
      </logger>
      <logger name="loginfo">
        <level value="INFO" />
        <appender-ref ref="InfoAppender" />
      </logger>
      <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Log\LogError\" />
        <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;.txt&quot;" />
        <param name="RollingStyle" value="Date" />
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &#xD;&#xA;   &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;.txt&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 &#xD;&#xA;   &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
        </layout>
      </appender>
    </log4net>
    复制代码

    最后在项目的 AssemblyInfo.cs 文件中注册Config文件,如下:

    //为项目注册Log4Net.config配置文件
    [assembly: log4net.Config.DOMConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

    最后,添加日志类:

    复制代码
     public class LogHelper
        {
            private LogHelper()
            {
            }
    
            public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
    
            public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
    
            public static void SetConfig()
            {
                log4net.Config.DOMConfigurator.Configure();
            }
    
            public static void SetConfig(FileInfo configFile)
            {
                log4net.Config.DOMConfigurator.Configure(configFile); 
            }
    
            public static void WriteLog(string info)
            {
                if(loginfo.IsInfoEnabled)
                {
                    loginfo.Info(info);
                }
            }
    
            public static void WriteLog(string info,Exception se)
            {
                if(logerror.IsErrorEnabled)
                {
                    logerror.Error(info,se);
                }
            }
        }
    复制代码

    好了,到了这里,准备工作也就完成了,下面我们就开始测试下吧<为了简单,直接在日志文件中写一句话>

    首先引用:using log4net;

    然后:

    复制代码
        public partial class index : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                LogHelper.WriteLog("陈卧龙是个大坏蛋");
            }
        }
    复制代码

    最后,我们在项目中显示所有文件,你会发现有个Log文件夹,如下:

    我们打开LogInfo文件夹下20161220.txt便会看到我们打印的信息

    当然,您的代码也可以这样写:

    复制代码
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    //todo
                }
                catch(Exception ex)
                {
                    LogHelper.WriteLog("被除数为零,呃呃呃,小学数学没学好!", ex);
                }
            }
    复制代码

    在todo过程中一旦发生异常就会执行Catch()语段,这时会在LogError文件夹中的文件中写入日志。

     好了,Log4Net还有一些用法,在此不作举例了!

    复制代码
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    //todo
                    LogHelper.loginfo.Warn("警告消息");
                    LogHelper.logerror.Warn("错误警告信息");
                }
                catch(Exception ex)
                {
                    LogHelper.WriteLog("被除数为零,呃呃呃,小学数学没学好!", ex);
                }
            }
    复制代码

    等等吧!

  • 相关阅读:
    flex + bison multiple parsers
    Educational Codeforces Round 95 (Rated for Div. 2)
    python学习笔记 day20 序列化模块(二)
    python学习笔记 day20 常用模块(六)
    python 学习笔记 常用模块(五)
    python学习笔记 day19 常用模块(四)
    python学习笔记 day19 常用模块(三)
    python学习笔记 day19 常用模块(二)
    python学习笔记 day19 作业讲解-使用正则表达式实现计算器
    python学习笔记 day19 常用模块
  • 原文地址:https://www.cnblogs.com/Alex80/p/9086634.html
Copyright © 2011-2022 走看看