现在的位置: 首页 > 综合 > 正文

Log4net测试笔记

2019年10月04日 ⁄ 综合 ⁄ 共 4542字 ⁄ 字号 评论关闭

1 到官网下载release版后,找到对应framework的dll,将这个dll引用到winform项目中。

2 在AssemblyInfo.cs中添加程序集关联信息:

[assembly: log4net.Config.XmlConfigurator]

3 在app.config中配置log4net:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup ......>
            ......其他配置        

        </sectionGroup>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /></startup>    

    其他配置......

  <log4net>
    <!--定义输出到文件中-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置-->
      <file value="log\\"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
      <staticLogFileName value="false"/>
      <param name="MaxSizeRollBackups" value="100"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <!--文件形式记录日志-->
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>

代码:

            log4net.ILog log = log4net.LogManager.GetLogger(typeof(FrmMain));
            log.Info("Hello world!");

输出:

记录时间:2014-10-24 13:16:42,496 
线程ID:[9] 
日志级别:  INFO  
出错类:CommunicateTest.FrmMain property: [(null)] - 
错误描述:Hello world!
 

 
记录时间:2014-10-24 13:16:42,569 
线程ID:[9] 
日志级别:  INFO  
出错类:CommunicateTest.FrmMain property: [(null)] - 
错误描述:Hello world!

=================配置方式二====================


在建立log4net配置文件log4net.xml,并拷贝到exe运行目录,文件内容如下:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
     
    <configSections> 
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"    /> 
    </configSections> 
     
    <log4net> 
<!-- 日志级别:
级别 允许的方法 Boolean属性 优先级别 
OFF                         Highest 
FATAL void Fatal(...); bool IsFatalEnabled;
RROR void Error(...); bool IsErrorEnabled;
WARN void Warn(...); bool IsWarnEnabled;
INFO void Info(...); bool IsInfoEnabled;
DEBUG void Debug(...); bool IsDebugEnabled;
ALL                         Lowest
-->
          
        <root> 
            <level value="WARN" /> 
            <appender-ref ref="LogFileAppender" /> 
            <appender-ref ref="ConsoleAppender" /> 
        </root> 

        <logger name="namespace1">

 <!--这里指定的是使用log4net功能类的命名空间,这里namespace1命名空间中的所有类中都可以使用log4net;如有多个命名空间,则需要声明多个logger节点-->
            <level value="DEBUG"/> 
        </logger> 
<!-- 日志输出格式化:
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
       模式字符串为:%-10c -%m%n
       代码为:
ILog log=LogManager.GetLogger(“Exam.Log”);
log.Debug(“Hello”);
    则输出为下面的形式:
Exam.Log       - Hello
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
 -->
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > 
            <param name="File" value="./log.txt" /> 
            <param name="AppendToFile" value="true" /> 
            <layout type="log4net.Layout.PatternLayout"> 
                <param name="Header" value="[Header]\r\n"/> 
                <param name="Footer" value="[Footer]\r\n"/> 
                <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
            </layout> 
            <filter type="log4net.Filter.LevelRangeFilter"> 
                <param name="LevelMin" value="DEBUG" /> 
                <param name="LevelMax" value="FATAL" /> 
            </filter> 
        </appender> 
         
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > 
            <layout type="log4net.Layout.PatternLayout"> 
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> 
            </layout> 
        </appender> 
         
    </log4net> 
     
</configuration> 
在项目中配置Log4net,配置方法:在AssemblyInfo.cs(Web 项目为web.config)最下面添加:
[assembly: log4net.Config.XmlConfigurator(ConfigFile="./log4net.xml", ConfigFileExtension="xml", Watch=true)]
在项目中使用Log4net,如类:com.suntom.testClass:
log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
log.Debug("Enter initMenus()");
 
启动程序并运行到日志输出处,退出程序后就可以在 bin/debug下 看到日志文件:
log.txt:
[Header]\r\n2011-07-04 22:38:58,226 [10] DEBUG com.suntom.testClass - Enter initMenus()
[Footer]
 
在此,Log4net就可以使用了。

【上篇】
【下篇】

抱歉!评论已关闭.