分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

(转)非常完善的Log4net详细说明

发布时间:2023-09-06 01:26责任编辑:林大明关键词:暂无标签

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

(转)非常完善的Log4net详细说明

原文地址:https://www.cnblogs.com/lsfv/p/9002223.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved