zoukankan      html  css  js  c++  java
  • Log4Net快速配置

    1、 Log4NET的概念: 

    a) 级别:trace、debug、info、warn、error、fatal。常用debug(调试信息,程序员临时跟踪执行,在正式运行的项目中应该不显示);warn(警告);error(错误)。 

    b) 特殊的级别:all(全部显示);off(全部不显示); 

    c) appender:可以把日志输出到控制台、文件、数据库、ftp服务器,甚至可以把日志输出到邮件、短信等。不同的输出场景就是不同的appender,可以添加多个appender,可以设定不同的级别级别使用不同的appender

    d) 什么是“滚动日志”?为什么要限制日志文件的大小和个数?

    2、 具体用法:

    a) Install-Package Log4NET

    b) <configuration><configSections>节点下新增(要在头部):<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

    c) 然后在<configuration>

    根节点下新增:

    <log4net>
        <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
        <!-- Set root logger level to ERROR and its appenders -->
        <!--哪些信息会被记录到日志中-->
        <root>
          <!--当前及大于都不被记录-->
          <level value="DEBUG" />
          <!--日志记录到哪-->
          <appender-ref ref="RollingFileTracer" />
        </root>
        <!-- Print only messages of level DEBUG or above in the packages -->
        <!--滚动日志RollingFileAppender-->
        <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net">
          <!--文件路径-->
          <param name="File" value="App_Data/Log/" />
          <!--追加到文件吗-->
          <param name="AppendToFile" value="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>

    d) App_Data下(如果是控制台项目是生成到binDebug下)的文件无法被浏览者下载,不希望访问者下载的文件放到这里。

    e) 在程序启动的时候:log4net.Config.XmlConfigurator.Configure();。容易忘,如果发现日志文件一直没有,先想是不是忘了写这句话。

    f) 记录信息:ILog logger = LogManager.GetLogger(typeof(WebForm1)); logger.Debug("aaaaaaaaaaaaaa"); logger.Error("aaaaaaaaaaaaaa");  注意不是LoggerManager、不是ILogger

    g) 还可以记录异常对象,这样异常堆栈就会记录到日志中:logger.Error("aaaaaaaaaaaaaa",ex);

    3、 性能优化: logger.DebugFormat(“hello {0}  {}”,"hello")等。 {n}占位符,而不是字符串拼接,这样如果配置中不输出这个级别的时候,就不会进行字符串拼接,提升性能。

     

    非常全的Log4Net使用教程:http://blog.csdn.net/ydm19891101/article/details/50561638  

  • 相关阅读:
    我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交
    我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架
    我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面
    我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
    Mysql 下DELETE操作表别名问题
    DynaActionForm(动态ActionForm)的使用
    structs中通过LabelValueBean构建下拉列表
    JavaScript中==和===区别
    JAVA包装类的缓存范围
    JAVA循环迭代中删除或添加集合数据报java.util.ConcurrentModificationException错误
  • 原文地址:https://www.cnblogs.com/cuijl/p/6689307.html
Copyright © 2011-2022 走看看