Log4net使用笔记
编写人:CC阿爸
2013-10-29
- 近来在处理项目时候,想将系统的操作日志以文本的形式记录下来,方便对系统操作记录进行追踪。
经过在网上搜索部分解决方案,大致可以归纳如下,并在当前环境下测试成功
首先说明一点的是,log4net解决的问题是提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中,一般来说我们只需要提供一个描述性的字符串,然后log4net就会自动提供有关运行时的一些信息。
Log4Net的版本仍是1.2.10,有.NET1.0和.NET1.1和.NET2.0版本,如果有正在使用高于.NET2.0开发的也不用担心,可以直接引用这个类库,像在.NET2.0中开发一样,它的网址是:http://logging.apache.org/log4net/
关于在Web中支持的问题
在我们开发项目时都会使用到config文件,可以在config文件中配置log4net。这一点Web项目和WinForm项目都是一样的。需要注意的是,因为在Web项目中一般以较低权限的角色来运行Web项目的,所以在使用文件型日志时要注意不要放在本项目根文件夹之外。
- 在config文件中的配置
要使用log4net,首先要在config文件的<configSections>节点中增加配置(如果没有这个节点请手动增加),如下:
<configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections>
可将config文件配置在app.config中,也可以单独生成一个config文件,我在这里是单独使用了log4net.config
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <root> <!--文件形式记录日志--> <!--<appender-ref ref="LogFileAppender" />--> <!--控制台控制显示日志--> <<!--appender-ref ref="ConsoleAppender" />--> <!--Windows事件日志--> <!--<appender-ref ref="EventLogAppender" />--> <!--SQLite事件日志--> <!--<appender-ref ref="AdoNetAppender_SQLite" />--> <!--RollingFileAppender事件日志--> <!--<appender-ref ref="RollingFileAppender" />--> <!--RollingFileAppender事件日志,每天一个日志--> <appender-ref ref="RollingLogFileAppender_DateFormat" /> <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉 --> <!--appender-ref ref="AdoNetAppender_Access" />--> </root> <appender name="RollingLogFileAppender_DateFormat" type="log4net.Appender.RollingFileAppender"> <!--日志的路径--><!-- <file value="log/log" /> --><!--是否覆盖,默认是追加true--><!-- <appendToFile value="true"/> --><!--文件名称--><!-- <DatePattern value="yyyyMMdd ".txt""></DatePattern> --><!--设置无限备份=- ,最大备份数为1000--><!-- <maxSizeRollBackups value=""/> --><!--每个文件的最大20k--><!-- <maximumFileSize value=""/> --><!--名称是否可以更改,为false为可以更改--><!-- <param name="StaticLogFileName" value="false" /> <param name="RollingStyle" value="Composite" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%r] [%t] %-5p %c - %m%n%n" /> </layout>--> <file value="log.txt" /> <DatePattern value="yyyyMMdd ".txt""></DatePattern> <appendToFile value="true" /> <rollingStyle value="Date" /> <!--<datePattern value="yyyyMMdd-HHmm" />--> <datePattern value="yyyyMMdd" /> <maximumFileSize value=""/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread](%file:%line) %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> </log4net> </configuration>
- 要在AssemblyInfo.cs 新增
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
或者:[assembly: log4net.Config.XmlConfigurator()] (把log4net的配置在web的配置文件时)
之前根据一示例设置了以下后出现登录的问题:
[assembly: log4net.Config.DOMConfigurator(ConfigFileExtension = "config", Watch = true)]
就出现了调试能登录系统,但编译后不能登录,系统老提示网络设置错误。具体是因何原因引起。仍没有弄明白,还望大家知道的能告知。所以不要使用这种方法。
- 程序中调用:
//创建日志记录组件实例 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); //ILog log = log4net.LogManager.GetLogger(typeof(Program)); ////记录错误日志 //log.Error("error", new Exception("在这里发生了一个异常,Error Number:" + random.Next())); //记录严重错误 //log.Fatal("fatal", new Exception("在发生了一个致命错误,Exception Id:"+random.Next())); //记录一般信息 //log.Info("提示:系统正在运行"); //记录调试信息 //log.Debug("调试信息:debug"); //记录警告信息 log.Warn("警告:warn");
- 系统根目录下就会生成(完成)
另:有一个有关Log4Net使用说明的博客可参考。
http://www.cnblogs.com/kissazi2/p/3389551.html
Log4net使用笔记的更多相关文章
- [转载]Log4net学习笔记
Log4net 学习笔记: 主要是根据apache站点整理的: 原文链接:http://logging.apache.org/log4net/release/sdk/ http://logging.a ...
- log4net学习笔记
一直想找一个好用的日子类,今天偶然的机会看到了log4net这个类库,过来学习一下. log4net是.NET框架下的一个日子类库,官网是http://logging.apache.org/log4n ...
- asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置
1.写到sqlserver的配置: <!--保存到SQLSERVER数据库日志--> <log4net> <appender name="AdoNetAppen ...
- asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地
log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过lo ...
- log4net 学习笔记
记入最基本的用法 : refer : http://www.cnblogs.com/aehyok/archive/2013/05/07/3066010.html <configuration&g ...
- log4net 使用笔记
一.Log4net特征 1.自定义日志输出级别 Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外 ...
- Log4Net学习笔记(1)-完整的例子
一.开发环境 编译器:VS2013 .Net版本:4.5 二.开发流程 1.从nuget上获取log4net 2.配置log4net的配置文件 <?xml version="1.0&q ...
- ASP.NET MVC学习之Log4Net配置(日志记录)
Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...
- log4net基本日志使用笔记[windows application]
Ref: http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html http://www.cnblogs.com/zhouf ...
随机推荐
- C++学习12 友元函数和友元类
友元函数和友元类在实际开发中较少使用,想快速学习C++的读者可以跳过本节. 一个类中可以有 public.protected.private 三种属性的成员,通过对象可以访问 public 成员,只有 ...
- 二叉树的JAVA实现-二叉树的增删改查CRUD
package org.lyk.interfaces; import java.util.List; public interface IBiTree<T extends Comparable& ...
- Java SE 第十六讲----面向对象特征之多态
1.多态:polymorphism:我们说的子类就是父类(玫瑰是花,男子是人),因此多态的意思就是:父类型的引用可以指向子类的对象 public class PolyTest { public sta ...
- Eclispe 安装PropertiesEditor插件
一个不错的编写properties文件的Eclipse插件(plugin),有了它我们在编辑一些简体中文.繁体中文等Unicode文本时,就不必再使用native2ascii编码了.您可以通过Ecli ...
- 无法加载程序集,因为该程序集包含EdmSchemaAttribute,并按名称加载结束类型。不允许同时按名称和特性进行加载
小小记录下,今天写程序时遇到的一个bug,相信大家用MVC+EF写项目时遇到的概率是挺大的.昨天本人也遇到了,很悲剧,暂时没想到好的办法解决,跟项目经理交流了下,这个问题认为出现在EF的自身设计上,它 ...
- 迁移到 Express 4.x
原文地址: http://expressjs.com/migrating-4.html 概览 从 Express 3 到Express 4 是一个巨大的变化,这意味着现存的 Express 3 应用在 ...
- win7-opengl开发环境的搭建
1. glut的安装: 下载glutdlls37beta.zip,下载链接直接opengl.org上找. 把glut.h 复制到include下: glut.lib, glut32.lib复制到C:\ ...
- 飞达资讯App总体介绍及关系架构图
飞达资讯App总体介绍: 下图为飞达资讯App的关系架构图: 该App关系架构图所需的图片云盘链接地址:http://pan.baidu.com/s/1gfHIe4b 提取密码:x1nr 该App的云 ...
- FusionCharts for Flex报错
1.昨天,我新建了一个Flex项目,并将FusionCharts组件添加进去了,但是Flex应用程序还是报错 具体错误如下: 2.但是,Flex项目已经导入FusionCharts.swc
- PMP考试--挣值如何计算?
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 假设一项工作的工期是10天,预算成本是100元:也就是每天的完成进度是10%左右:每 ...