zoukankan      html  css  js  c++  java
  • 记日杂-log4net组件使用

    下面我给大家介绍一下记日杂-log4net组件使用,当程序发布有服务器上,有时出现了错误, 都不知道出现在那,所以log4net组件很好解决这个问题。

    1、添加开发包,并对log4net.dll的引用

    2、在Web.Config (或App.Config)添加配置,

    <configSections><!--一定要在所有节点之前-->

        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

    </configSections>

      3、新增log4net 节点

      <log4net>

        <root>

          <!-- 日志级别 OFF(关闭),FATAL,ERROR,WARN,INFO,DEBUG,ALL(全部显示) -->

          <level value="ALL" />

          <appender-ref ref="RollingFileTracer" />

        </root>

        <!-- Print only messages of level DEBUG or above in the packages -->

        <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <!--RollingFileAppender 表示滚动日志信息-->

          <param name="File" value="App_Data/Log/" /> <!--日志信息保存的位置-->

          <param name="AppendToFile" value="true" />  <!--是否是附加文件,true为在原来文件上追加内容-->

          <param name="RollingStyle" value="Date" />  <!--文件根据什么来滚动储存, 这里是根据时间-->

          <param name="MaxSizeRollBackups" value="10" /> <!--最多有多少个文件,当大于这个数, 就会把最先的文件删除-->

          <param name="MaximumFileSize" value="1MB" />  <!--每个文件最大大小-->

          <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" /> <!--日志文件名格式-->

          <param name="StaticLogFileName" value="false" />

          <layout type="log4net.Layout.PatternLayout,log4net">

            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> <!--输出格式-->

          </layout>

        </appender>

      </log4net>

     

    可以对访问级别进行控制, 调用时可以设为all 这样调试信息都会输出到日志文件中, 待程序稳定后,设为Warn  这样调试信息不会输出到日志文件中, 同时也不用修改代码

     

    4、初始化:在Global的Application_Start中写(程序启动的时候读取配置)

      log4net.Config.XmlConfigurator.Configure();

    注意:一定要加入这个, 没有加虽然8不会报错但是不会任何效果

     

    5、在Global的Application_Error记录未处理的异常信息

        例:ILog ilog = LogManager.GetLogger(typeof(Global));

             ilog.Error("系统发生未处理的异常信息",Context.Error);

             在mvc里面可以手动添加这个方法

           protected void Application_Error(object sender, EventArgs e)

            {

                //当系统中发生未处理的异常信息, 这个方法会被调用

                ILog ilog = LogManager.GetLogger(typeof(MvcApplication));

                ilog.Error("系统发生未处理的异常信息", Context.Error);

            }

    在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息");

    通过LogManager.GetLogger传递要记录的日志类类名获得这个类的ILog(这样在日志文件中就能看到这条日志是哪个类输出的了),然后调用Debug方法输出消息。

    因为一个类内部不止一个地方要打印日志,所以一般把ILog声明为一个static字段。

    输出错误信息用ILog.Error方法,第二个参数可以传递Exception对象。log.Error("***错误"+ex),log.Error("***错误",ex)

    例:

     private static ILog ilog = LogManager.GetLogger(typeof(WebForm1));

     protected void Page_Load(object sender, EventArgs e)

     {

             ilog.Debug("调试信息");

         ilog.Info("信息");

         ilog.Warn("警告信息");

         ilog.Error("错误信息");

         ilog.Fatal("严重信息");

      } 

  • 相关阅读:
    链表和数组的区别在哪里 【微软面试100题 第七十八题】
    关于链表问题的面试题目 【微软面试100题 第七十七题】
    复杂链表的复制 【微软面试100题 第七十六题】
    二叉树两个结点的最低公共父结点 【微软面试100题 第七十五题】
    数组中超过出现次数一半的数字 【微软面试100题 第七十四题】
    对称字符串的最大长度 【微软面试100题 第七十三题】
    Singleton模式类 【微软面试100题 第七十二题】
    数值的整数次方 【微软面试100题 第七十一题】
    旋转数组中的最小元素 【微软面试100题 第六十九题】
    把数组排成最小的数 【微软面试100题 第六十八题】
  • 原文地址:https://www.cnblogs.com/zhangwang/p/6152902.html
Copyright © 2011-2022 走看看