C#使用Log4Net记录日志

摘要:
例如:/log/xxxx.log或d://log/xxxxx.log5。在项目中创建新的log4net配置文件log4net.config。我下载了log4net-1.2.11-bin-newkey2的最新版本。将inet4.0eleaselog4net.dll复制到项目中。

当你在开发程序的时候, 调试(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. 将 in et4.0 eleaselog4net.dll 复制到你的项目中 。

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

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

C#使用Log4Net记录日志第1张

[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="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">  
        <file value="applicationLog.log" /><!--file可以指定具体的路径 eg : d:\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->  
        <appendToFile value="true" />  
        <rollingStyle value="Size" />  
        <maxSizeRollBackups value="10" /><!--备份log文件的个数最多10个-->  
        <maximumFileSize value="2MB" /><!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->  
        <staticLogFileName value="true" />  
        <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="RollingLogFileAppender" />  
      </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. 将 in et4.0 eleaselog4net.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。

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <configuration>  
  3.   <configSections>  
  4.     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />  
  5.   </configSections>  
  6.   
  7.    <log4net debug="true">  
  8.       <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">  
  9.         <file value="applicationLog.log" /><!--file可以指定具体的路径 eg : d:\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->  
  10.         <appendToFile value="true" />  
  11.         <rollingStyle value="Size" />  
  12.         <maxSizeRollBackups value="10" /><!--备份log文件的个数最多10个-->  
  13.         <maximumFileSize value="2MB" /><!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->  
  14.         <staticLogFileName value="true" />  
  15.         <layout type="log4net.Layout.PatternLayout"> <!--指定log的格式-->  
  16.           <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />  
  17.         </layout>  
  18.       </appender>  
  19.   
  20.       <root>  
  21.         <level value="DEBUG" /><!--指定将此级别及以上的log打印到log文件中-->  
  22.         <appender-ref ref="RollingLogFileAppender" />  
  23.       </root>  
  24.    </log4net>  
  25. </configuration>  

 

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

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

 

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

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. using log4net;  

 

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

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);  


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

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  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  

免责声明:文章转载自《C#使用Log4Net记录日志》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ABP官方文档翻译 3.1 实体C++第三十九篇 -- 研究一下Windows驱动开发(二)-- 驱动程序中重要的数据结构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

babel.config.js 和 .babelrc 对比

Babel 有两种并行的配置文件格式,可以一起使用,也可以分开使用。 项目范围的配置 babel.config.js 文件,具有不同的拓展名(json、js、html)babel.config.js 是按照 commonjs 导出对象,可以写js的逻辑。 相对文件的配置 .babelrc 文件,具有不同的拓展名 总结:baberc 的加载规则是按目录加载的...

VS2005配置文件(.config/Settings)

一、.config设置       NET的应用程序配置文件,使用的是XML格式。相对INI文件来说,它的功能要强上不少,而且具有很强的可扩展性。它的缺点是不能直接进行写操作,也就是说,不能直接在程序中修改配置文件的数据(当然不是指不能,不过不是本文讨论的范围)。本文主要目的是探讨如何扩展配置文件,并在其加入各种自定义配置信息。    1. 使用<a...

adb命令——日志命令详解——全部输出到桌面: adb logcat &amp;gt; c:usersdeldesktoplog.txt

adb logcat 一.在cmd窗口查看手机的Log日志 有时候我们在手机程序上的日志要在其他地方调试,然后要看里面的Log日志。在cmd窗口中输入如下命令: //格式1:打印默认日志数据 adb logcat //格式2:需要打印日志详细时间的简单数据 adb logcat -v time //格式3:需要打印级别为Error的信息 adb logc...

axios 学习文档

什么是 axios? Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。axios Github 特性 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持...

Percona 5.7安装

一、从官网下载Percona5.7 地址:https://www.percona.com/downloads/Percona-Server-5.7/LATEST/ 需要注意是服务器的版本。我这里选择的是Percona-Server-5.7.16-10-ra0c7d0d-el6-x86_64-bundle.tar 二、解压 tar xvf Percona-S...

浅谈 qmake 之 pro、pri、prf、prl文件

尽管每次和cmake对比起来,我们总是说 qmake 简单、功能少。但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmake内置变量和函数不超过20个 看Qt Creator源码或者QtSolution等库中自己使用的 *.pro 文件就想看天书一样 本文只能抓住一条线,简单介绍...