加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

C#使用Log4Net记录日志

发布时间:2020-12-16 08:55:35 所属栏目:asp.Net 来源:网络整理
导读:当你在开发程序的时候,调试(debugging)和日志(logging)都是非常重要的工作。在应用中使用日志主要有三个目的 l? 监视代码中的变量的变化情况,把数据周期性地记录到文件中供其它应用进行统计分析工作 l? 跟踪代码运行的轨迹,作为日后审计的依据 l? 担当集成

当你在开发程序的时候,调试(debugging)和日志(logging)都是非常重要的工作。在应用中使用日志主要有三个目的

l? 监视代码中的变量的变化情况,把数据周期性地记录到文件中供其它应用进行统计分析工作

l? 跟踪代码运行的轨迹,作为日后审计的依据

l? 担当集成开发环境中的调试器,向文件或者控制台打印代码的调试信息

而实现这些应用的常规方式是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。

?

使用过程中遇到的问题:

  1:配置完之后,无法产生日志信息? ?

  可能忘了添加第4步,第4步也可以放在你创建的日志帮助类的特性中。其中:ConfigFile="Log4Net.config" ?可以为你新建的配置文件,也可以使用web.config:

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

  

    

详细步骤如下:

1. 首先从apache网站下载log4net,?http://logging.apache.org/log4net/download_log4net.cgi?。我下的是最新版本 log4net-1.2.11-bin-newkey

2. 将 binnet4.0releaselog4net.dll 复制到你的项目中 。

3. 将log4net.dll 添加引用到你的项目中。

4. 添加如下内容到 assemblyinfo.cs:

?

?

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

?注意:?ConfigFile 可以指定相对路径 和 绝对路径。 eg: /log/xxxx.log? 或者 d://log//xxxx.log

?

5.在项目中创建一个新的log4net的配置文件Log4Net.config。

?

<?xml version="1.0" encoding=utf-8" ?>  
<configuration>  
  <configSections>  
    <section name=log4net" type=log4net.Config.Log4NetConfigurationSectionHandler,log4net" />  
  </configSections>  
  
   <log4net debug=true">  
      <appender name=RollingLogFileAppenderlog4net.Appender.RollingFileAppender">  
        <file value=applicationLog.log" /><!--file可以指定具体的路径 eg : d:test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->  
        <appendToFile value=" />  
        <rollingStyle value=Size" />  
        <maxSizeRollBackups value=10" /><!--备份log文件的个数最多10个-->  
        <maximumFileSize value=2MB" /><!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->  
        <staticLogFileName value=" />  
        <layout type=log4net.Layout.PatternLayout"> <!--指定log的格式-->  
          <conversionPattern value=[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />  
        </layout>  
      </appender>  
  
      <root>  
        <level value=DEBUG" /><!--指定将此级别及以上的log打印到log文件中-->  
        <appender-ref ref=" />  
      </root>  
   </log4net>  
</configuration> 

?

?

?

注意:根据第4步的配置,应该把log4net的配置文件放到项目的bin/Debug 或者 bin/Release目录下,否则会出现找不到配置文件而无法创建logger对象。

(web的项目,直接放在web项目的根目录下即可)

?

6.在你的类中引入命名空间

  using?log4net; ?

?

7. 在你的类中创建logger 实例?

  private?static?log4net.ILog?log?=?log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); ?


8. 运行你的项目,打出的log结果

?
    1. [2012-06-26?14:14:34,862]??1?--?DEBUG?--?LogTest.Program?[Main]?--?this?is?the?log4net?log?test.??
    2. [2012-06-26?14:14:34,877]??1?--?INFO??--?LogTest.Program?[Main]?--?this?is?the?info..........................................??
    3. [2012-06-26?14:14:34,878]??1?--?INFO??--?LogTest.Program?[print]?--?this?method?is?print()??
    4. [2012-06-26?14:14:34,878]??1?--?ERROR?--?LogTest.Program?[print]?--?error?test ?

1. 首先从apache网站下载log4net,?http://logging.apache.org/log4net/download_log4net.cgi?。我下的是最新版本 log4net-1.2.11-bin-newkey

2. 将 binnet4.0releaselog4net.dll 复制到你的项目中 。

3. 将log4net.dll 添加引用到你的项目中。

4. 添加如下内容到 assemblyinfo.cs。

[csharp]?view plain?copy
?
?

在CODE上查看代码片

派生到我的代码片

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

?注意:?ConfigFile 可以指定相对路径 和 绝对路径。 eg: /log/xxxx.log? 或者 d://log//xxxx.log

?

5.在项目中创建一个新的log4net的配置文件Log4Net.config。

    注意:根据第4步的配置,应该把log4net的配置文件放到项目的bin/Debug 或者 bin/Release目录下,否则会出现找不到配置文件而无法创建logger对象。

    6.在你的类中引入命名空间

    using?log4net;??

7. 在你的类中创建logger 实例

private?static?log4net.ILog?log?=?log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);??


8. 运行你的项目,打出的log结果