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  

原文地址:https://www.cnblogs.com/cuijl/p/6689307.html