当你在开发程序的时候, 调试(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. 将 \bin\net\4.0\release\log4net.dll 复制到你的项目中 。

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

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

注意: 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="" /><!--备份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. 将 \bin\net\4.0\release\log4net.dll 复制到你的项目中 。

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

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

[csharp] view plain copy

 

  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

 

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

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

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

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

[csharp] view plain copy

 

  1. using log4net;

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

[csharp] view plain copy

 

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

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

[plain] view plain copy

 

  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记录日志的更多相关文章

  1. [转]C#使用Log4Net记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  2. C# 使用 log4net 记录日志

    Ø  前言 在一般的开发应用中,都会涉及到日志记录,用于排查错误 或 记录程序运行时的日志信息.log4net 库是 Apache log4j 框架在 Microsoft .NET 平台的实现,是一个 ...

  3. ASP.NET Core使用log4net记录日志

    .NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...

  4. 用log4net记录日志信息

    在.net中用log4net记录日志信息,已经是很平常的事情了. log4net下载:http://logging.apache.org/log4net/download_log4net.cgi 百度 ...

  5. 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库

    最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...

  6. Windows服务使用log4net记录日志

    该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 比较流行的日志组件有以下四种,Topshelf都有相应的组件提供 log4net NL ...

  7. 使用Log4net记录日志(非常重要)

    使用Log4net记录日志   首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志 ...

  8. Log4Net记录日志的使用

    Log4net 基本样式: <log4net> <appender name="LogFileAppender" type="log4net.Appen ...

  9. Log4net 记录日志

    配置文件 备注,需要放到根目录下面 <?xml version="1.0" encoding="utf-8"?> <configuration ...

  10. 使用 Log4Net 记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

随机推荐

  1. ABP理论学习之OData集成(新增)

    返回总目录 本篇目录 介绍 安装 创建控制器 例子 样例项目 介绍 OData在其官网的定义是: 允许以一种 简单且标准的方式创建和使用可查询的.可互操作的RESTful APIs. 在ABP中也可以 ...

  2. iOS开发系列--让你的应用“动”起来

    --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...

  3. 求两点之间最短路径-Dijkstra算法

     Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.D ...

  4. 常用网络工具 ipconfig arp traceroute

    如今的计算机是离不开网络的计算机了,因而我们对网络要有一基础的认识.连不上网,程序运行不正常之类的,多少都与网络有关.本文将介绍常用的工具. 网络出问题 ipconfig ping 网络连不上,首先要 ...

  5. .NET中操作IPicture、IPictureDisp的小随笔

    [题外话] 最近在做一个调用某实验仪器的程序,这个仪器提供了Windows上COM的接口.调用仪器的时候需要传输图片,提供的接口里使用了IPicture这个接口,由于以前没接触过,所以查找了一些资料, ...

  6. 有关bootstrap之排版

    1.标题 HTML中的所有标题标签,从<h1> 到 <h6> 均可用.另外,还提供了.h1 到.h6 class,为的是给inline属性的文本赋予标题的样式. 在标题内还可以 ...

  7. SQL Server 创建数据库邮件

    一. 背景 数据库发邮件通知数据库的运行状态(状态可以通过JOB形式获取)和信息,达到预警的效果. 二. 基础知识 msdb系统数据库保存有关Job,Database Mail,Nodifyicati ...

  8. Android之线程池深度剖析

    1.线程池的引入   引入的好处:   1)提升性能.创建和消耗对象费时费CPU资源   2)防止内存过度消耗.控制活动线程的数量,防止并发线程过多.   使用条件:      假设在一台服务器完成一 ...

  9. JavaScript 中的类方法,对象方法,Prototype方法

    <script type="text/javascript"> function baseClass() { this.showMsg = function() { a ...

  10. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...