如何利用log4Net自定义属性配置功能记录完整的日志信息
添加一个配置文件:我这里命名为 .config(也可以在web.config里面配置为便于管理故新建了一个配置文件)
<> mandText value="INSERT INTO如何在 Windows 服务中正确使用 log4net
不论 的配置写在 app.config 里,还是独立的 config 文件里,都是一样。
今天终于发现原来是在服务里不能正确定位到这个配置文件所致。
于是经过尝试之后,发现关键在于如下代码中获取当前 exe 所在目录并用于得到 config 文件的路径。
按这个写法就可以正确输出日志了:log4net ConversionPattern 的 %x %X 分别表示什么意思
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息%n(new line):换行%d(datetime):输出当前语句运行的时刻?%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数?%t(thread id):当前语句所在的线程ID%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等%c(class):当前日志对象的名称%L:输出语句所在的行号%F:输出语句所在的文件名%-数字:表示该项的最小长度,如果不够,则用空格填充log4net 有支持.Net Framework 3.0的吗?谢谢
这个不分的。
可以向上兼容 。
你用2.0的也可以用在3.0里。
而且现在基本上很少用3.0的框架了,基本上要和骒2.0,要么是3.5或者4.0 3.0 就是夹在中间的一个奇葩。
如何使用 log4net 日志框架
在项目中配置
第一步:首先在项目中引用.dll文件。
第二步:在Web.config文件中进行添加configSections的节点
第三步:添加配置节点
然后在节点下添加
写入本地文本文件中的配置
注释很清楚,就不解释了。
写入指定邮箱的配置
通过的是163邮箱服务器发送
将日志写入数据库的相关配置,还要建立一张对应的数据库表
另外一种写入文件的方式配置
在节点中还有两个节点
在框架的体系里,所有的日志对象都是根日志(root logger)的后代。
因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。
在标签里,可以定义level级别值和Appender的列表。
如果没有定义LEVEL的值,则缺省为DEBUG。
可以通过标签定义日志对象使用的Appender对象。
声明了在其他地方定义的Appender对象的一个引用。
在一个logger对象中的设置会覆盖根日志的设置。
而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。
这种缺省的行为方式也可以通过显式地设定标签的additivity属性为false而改变。
那么上面就会有数据库日志的写入和邮箱的写入
在Global.asax文件初始化配置
调用
运行一下
中 DEBUG、INFO、WARN、ERROR 区分得很好。
正常的 DEBUG、INFO 的日志, 就让它记录在
日志文件里面吧。
对于 WARN、ERROR 级别的日志, 记录到日志文件的同时, 顺便发送电子邮件到我的信箱里面。
这样一来,
我也不必每天去看日志文件, 二来,出了什么问题, 能及时通过电子邮件得到通知。
数据库结构如何使用log4net记录日志
实现步骤:
一,下载.dll (推荐从官网下载 //download_.cgi)
二,在项目中引用 .dll
三,添加一个配置文件:我这里命名为 .config(也可以在web.config里面配置为便于管理故新建了一个配置文件)
<>
mandText value="INSERT INTO OperateLog ([OperateType],[Describe],[Userid],[OperateTime]) VALUES (@OperateType, @Describe, @Userid, @OperateTime)" />
>
四,在项目的 AssemblyInfo.cs 文件的指定 的配置文件路径
[assembly: .Config.XmlConfigurator(ConfigFile = ".config", Watch = true)]
五,自定义记录函数
View Code
六,在 后台代码中的调用
Operate_Log("1", "学员:" + txtName.Text);