[Solution] 1分钟使用log4net

  log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具

    官网:http://logging.apache.org/log4net/index.html

    安装:Install-Package log4net

 

1.复制log4net.xml文件

<log4net>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <!--日志文件名开头-->
    <file value="Logs/project.log" />
    <!--是否追加到文件-->
    <appendToFile value="true" />
    <!--混合使用日期和文件大小变换日志文件名-->
    <rollingStyle value="Composite" />
    <!--日期的格式-->
    <datePattern value="yyyyMMdd" />
    <!--最大变换数量-->
    <maxSizeRollBackups value="30" />
    <!--最大文件大小-->
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d [%t] %-5p %m - [%F:%L]%n" />
    </layout>
  </appender>

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d [%t] %-5p %m%n" />
    </layout>
  </appender>

  <root>
    <level value="DEBUG"></level>

    <appender-ref ref="RollingLogFileAppender"></appender-ref>
    <!--<appender-ref ref="ConsoleAppender"></appender-ref>-->
  </root>

</log4net>

  

2.初始化,读入配置

var path = Server.MapPath("~/log4net.xml");
log4net.Config.XmlConfigurator.Configure(new FileInfo(path));

 

3.使用,可以更改配置文件log4net.config自己配置
方式一:log4net.LogManager.GetLogger(GetType());
方式二:log4net.LogManager.GetLogger("logger-name");
方式三:LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

 

配置说明

[level]

包括ROOT在内的每一个LOGGER(ROOT也是一个LOGGER,只不过,他是祖先而已,别的方面,跟其他LOGGER一样),都可以定义Level
level定义记录的日志级别,就是说,你要记录哪个级别以上的日志,级别由高往低依次是:
None
Fatal
ERROR
WARN
DEBUG
INFO
ALL

 

[layout]
   %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
   %n(new line):换行
   %d(datetime):输出当前语句运行的时刻
   %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
   %t(thread id):当前语句所在的线程ID
   %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
   %c(class):当前日志对象的名称,例如:
   %L:输出语句所在的行号
   %F:输出语句所在的文件名
   %-数字:表示该项的最小长度,如果不够,则用空格填充

 

扩展:

也可以直接在*.config添加以下节点,这样初始化配置的时候无需传参配置

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

 

参考:

http://logging.apache.org/log4net/release/manual/configuration.html

posted @ 2015-06-30 14:15  Never、C  阅读(356)  评论(0编辑  收藏  举报