zoukankan      html  css  js  c++  java
  • (转)非常完善的Log4net详细说明

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

    第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。

    第二步:程序启动时读取log4net的配置文件。

    如果是CS程序,在根目录的Program.cs中的Main方法中添加:

    log4net.Config.XmlConfigurator.Configure();

    如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加:

    log4net.Config.XmlConfigurator.Configure();

    无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:

    [assembly: log4net.Config .XmlConfigurator()]

    也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。

    第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。

    App.config文件添加内容如下:

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

    <configuration>

      <configSections>

    <section name="log4net"

    type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

      </configSections>

     

      <log4net>

        <root>

          <level value="WARN" />

          <appender-ref ref="LogFileAppender" />

          <appender-ref ref="ConsoleAppender" />

        </root>

     

        <logger name="testApp.Logging">

          <level value="DEBUG"/>

        </logger>

     

        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >

          <param name="File" value="log-file.txt" />

          <param name="AppendToFile" value="true" />

     

          <layout type="log4net.Layout.PatternLayout">

            <param name="Header" value="[Header] "/>

            <param name="Footer" value="[Footer] "/>

            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />

          </layout>

     

          <filter type="log4net.Filter.LevelRangeFilter">

            <param name="LevelMin" value="DEBUG" />

            <param name="LevelMax" value="WARN" />

          </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.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器

    log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log

    这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件中,其中“log-file.txt”文件的路径是当前程序运行所在目录;也可以定义为绝对路径,配置如:

    <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件中,具体使用技巧参见4.2.1。

    同时多文件日志

    <!--FATAL(致命错误):记录系统中出现的能使用系统完全失去功能,服务停止,系统崩溃等使系统无法继续运行下去的错误。例如,数据库无法连接,系统出现死循环。
    ERROR(一般错误):记录系统中出现的导致系统不稳定,部分功能出现混乱或部分功能失效一类的错误。例如,数据字段为空,数据操作不可完成,操作出现异常等。
    WARN(警告):记录系统中不影响系统继续运行,但不符合系统运行正常条件,有可能引起系统错误的信息。例如,记录内容为空,数据内容不正确等。
    INFO(一般信息):记录系统运行中应该让用户知道的基本信息。例如,服务开始运行,功能已经开户等。
    DEBUG (调试信息):记录系统用于调试的一切信息,内容或者是一些关键数据内容的输出。-->

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

    <log4net>
    <root>
    <level value="WARN" />

    <!-- additivity="false"
    <appender-ref ref="logcamera" />
    <appender-ref ref="logquece" />
    <appender-ref ref="logdisplay" />
    <appender-ref ref="logboardcast" /> -->


    </root>

    <logger name="log_camera">
    <level value="ALL"/>
    <appender-ref ref="logcamera" />
    </logger>

    <logger name="log_quece">
    <level value="ALL"/>
    <appender-ref ref="logquece" />
    </logger>

    <logger name="log_display">
    <level value="ALL"/>
    <appender-ref ref="logdisplay" />
    </logger>

    <logger name="log_boardcast">
    <level value="ALL"/>
    <appender-ref ref="logboardcast" />
    </logger>

    <appender name="logcamera" type="log4net.Appender.FileAppender" >
    <param name="File" value="Mylog1.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Header] "/>
    <param name="Footer" value="[Footer] "/>
    <param name="ConversionPattern" value="%d %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="WARN" />
    </filter>
    </appender>

    <appender name="logquece" type="log4net.Appender.FileAppender" >
    <param name="File" value="Mylog2.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Header] "/>
    <param name="Footer" value="[Footer] "/>
    <param name="ConversionPattern" value="%d %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="WARN" />
    </filter>
    </appender>

    <appender name="logdisplay" type="log4net.Appender.FileAppender" >
    <param name="File" value="Mylog2.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Header] "/>
    <param name="Footer" value="[Footer] "/>
    <param name="ConversionPattern" value="%d %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="WARN" />
    </filter>
    </appender>

    <appender name="logboardcast" type="log4net.Appender.FileAppender" >
    <param name="File" value="Mylog2.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Header] "/>
    <param name="Footer" value="[Footer] "/>
    <param name="ConversionPattern" value="%d %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="DEBUG" />
    <param name="LevelMax" value="WARN" />
    </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>

    1.使用代码

    下面这句一定要放到程序入口程序处。是加载默认配置文档,如app.config

    log4net.Config.XmlConfigurator.Configure();

    log4net.ILog log = log4net.LogManager.GetLogger("log_camera");//获取一个日志记录器
    log.Info("start server.camera");

     public log4net.ILog log = log4net.LogManager.GetLogger("log_display");//获取一个日志记录器

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/lsfv/p/9002223.html
Copyright © 2011-2022 走看看