zoukankan      html  css  js  c++  java
  • (24)C#log4net配置和使用

    一、下载并引用log4

    DLL下载  http://logging.apache.org/

     找到.net版本的

     

     点击下载

     找到编译好的bin

     选择net

    选择你项目对应的.net framework版本

    里面的DLL就是我们要用的文件,

     把他引用到项目中

     

    引入命名空间

    二、配置APPconfig

    1、创建APPconfig

    配置APPconfig

    在工程名上右键-添加-新建项,找到应用程序配置文件,默认名App.config

    创建成功后默认代码如下,所有的配置都要写在<configuration></configuration>之间

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>

    </configuration>

    2、<log4net></log4net>里有五个子元素

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <log4net>
    
        <root></root>
        <logger></logger>
        <appender></appender>
        <layout></layout>
        <param></param>
    
    </log4net>
    </configuration>

     三、控制台输出日志

    1、新建并配置APP.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <log4net>
        <root>
          <level value="ALL" />
          <appender-ref ref="ConsoleAppender" />
        </root>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">   
          </layout>
        </appender>
      </log4net>
    </configuration>

    2、

    默认的APP.config编译后文件是和bin文件夹在同一级的

    选中APP.config右键属性-把复制到输出目录设置为始终复制,这样就拷贝了一份config文件到bin里

    3、关联APP.config文件

    打开工程Properties文件夹下的AssemblyInfo.cs 加入代码

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "App.config", Watch = true)]

    如果控制台不输出日志,去掉configFile

    [assembly: log4net.Config.XmlConfigurator(Watch = true)]

    4、控制台代码

    using System;
    using System.Collections.Generic;
    using System.Text;
    using log4net;
    
    namespace log4
    {
        class Program
        {
            static void Main(string[] args)
            {
                ILog log = LogManager.GetLogger("ConsoleAppender");
                log.Info("测试");
                Console.ReadKey();
            }
        }
    }

    四、文件输出日志

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <log4net>
        <appender name="FileAppender" type="log4net.Appender.FileAppender">
          <file value="Log.log" />
          <Layout type="log4net.Layout.PatternLayout"> 
          </Layout>
        </appender>
        <root>
          <level value="ALL" />
          <appender-ref ref="FileAppender" />
        </root>
      </log4net>
    </configuration>

    运行三次

     

    五、数据库记录日志

    六、记录多个日志文件

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <log4net>
    
      <logger name="Logging">
        <level value="ALL"/>
        <appender-ref ref="RollingFileAppender_INFO"/>
        <appender-ref ref="RollingFileAppender_WARN"/>
      </logger>
    
      <!--记录INFO方法的日志-->
      <appender name="RollingFileAppender_INFO" type="log4net.Appender.RollingFileAppender">
        <file value="./Log/INFO." />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value="yyyyMMdd" />
        <Encoding value="UTF-8" />
        <param name="maximumFileSize" value="80MB" />
        <maxSizeRollBackups value="10" />
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="[%d] - %m%n" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="INFO" />
          <param name="LevelMax" value="INFO" />
        </filter>
      </appender>
    
      <!--记录WARN方法的日志-->
      <appender name="RollingFileAppender_WARN" type="log4net.Appender.RollingFileAppender">
        <file value="./Log/WARN." />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value="yyyyMMdd" />
        <Encoding value="UTF-8" />
        <param name="maximumFileSize" value="80MB" />
        <maxSizeRollBackups value="10" />
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="[%d] - %m%n" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="WARN" />
          <param name="LevelMax" value="WARN" />
        </filter>
      </appender>
    </log4net>
    </configuration>
                ILog log = LogManager.GetLogger("Logging");
                log.Info("测试1");
                log.Warn("测试2");
                Console.ReadKey();

    七、log4j.appender.appender1.layout.ConversionPattern=日志输出格式

    1. 例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
    2. %c 输出日志信息所属的类的全名
    3. %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
    4. %f 输出日志信息所属的类的类名
    5. %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
    6. %m 输出代码中指定的信息,如log(message)中的message
    7. %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
    8. %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
    9. %r 输出自应用启动到输出该日志信息所耗费的毫秒数
    10. %t 输出产生该日志事件的线程名

     

    参考文档:

    http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html

    http://www.cnblogs.com/zhangchenliang/p/4546352.html

     等

  • 相关阅读:
    为什么人们普遍选择城市而非农村
    风物长宜放眼量-创业潮比雾霾消散的要快
    一眼看请考研的目的-本质上的第二次高考
    京都城门考
    翻译的很好的一篇android mediaplayer
    Android MediaProvider数据库模式
    android 多媒体数据库详解
    android usb挂载分析---vold处理内核消息
    android usb挂载分析
    android usb挂载分析---MountService启动
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/6140421.html
Copyright © 2011-2022 走看看