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");//获取一个日志记录器

  • 相关阅读:
    跟我一起学extjs5(02--建立project项目)
    SVN经常使用操作
    CWnd::Attach()具体解释
    51nod1160 压缩算法的矩阵——一道有趣的题
    Java实现 LeetCode 594 最长和谐子序列(滑动窗口)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 593 有效的正方形(判断正方形)
    Java实现 LeetCode 593 有效的正方形(判断正方形)
  • 原文地址:https://www.cnblogs.com/lsfv/p/9002223.html
Copyright © 2011-2022 走看看