Log4Net使用详解Word格式.docx

上传人:b****2 文档编号:3667914 上传时间:2023-05-02 格式:DOCX 页数:38 大小:572.85KB
下载 相关 举报
Log4Net使用详解Word格式.docx_第1页
第1页 / 共38页
Log4Net使用详解Word格式.docx_第2页
第2页 / 共38页
Log4Net使用详解Word格式.docx_第3页
第3页 / 共38页
Log4Net使用详解Word格式.docx_第4页
第4页 / 共38页
Log4Net使用详解Word格式.docx_第5页
第5页 / 共38页
Log4Net使用详解Word格式.docx_第6页
第6页 / 共38页
Log4Net使用详解Word格式.docx_第7页
第7页 / 共38页
Log4Net使用详解Word格式.docx_第8页
第8页 / 共38页
Log4Net使用详解Word格式.docx_第9页
第9页 / 共38页
Log4Net使用详解Word格式.docx_第10页
第10页 / 共38页
Log4Net使用详解Word格式.docx_第11页
第11页 / 共38页
Log4Net使用详解Word格式.docx_第12页
第12页 / 共38页
Log4Net使用详解Word格式.docx_第13页
第13页 / 共38页
Log4Net使用详解Word格式.docx_第14页
第14页 / 共38页
Log4Net使用详解Word格式.docx_第15页
第15页 / 共38页
Log4Net使用详解Word格式.docx_第16页
第16页 / 共38页
Log4Net使用详解Word格式.docx_第17页
第17页 / 共38页
Log4Net使用详解Word格式.docx_第18页
第18页 / 共38页
Log4Net使用详解Word格式.docx_第19页
第19页 / 共38页
Log4Net使用详解Word格式.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Log4Net使用详解Word格式.docx

《Log4Net使用详解Word格式.docx》由会员分享,可在线阅读,更多相关《Log4Net使用详解Word格式.docx(38页珍藏版)》请在冰点文库上搜索。

Log4Net使用详解Word格式.docx

!

--定义输出到文件中-->

appender 

LogFileAppender"

log4net.Appender.FileAppender"

--定义文件存放位置-->

file 

value="

D:

log4netfile.txt"

appendToFile 

true"

rollingStyle 

Date"

datePattern 

yyyyMMdd-HH:

mm:

ss"

layout 

log4net.Layout.PatternLayout"

--每条日志末尾的文字说明-->

footer 

by 

周公"

--输出格式-->

--样例:

2008-03-26 

13:

42:

32,111 

[10] 

INFO 

Log4NetDemo.MainClass 

[(null)] 

info-->

conversionPattern 

记录时间:

%date 

线程ID:

[%thread] 

日志级别:

%-5level 

出错类:

%logger 

property:

[%property{NDC}] 

错误描述:

%message%newline"

/layout>

/appender>

--定义输出到控制台命令行中-->

ConsoleAppender"

log4net.Appender.ConsoleAppender"

--定义输出到windows事件中-->

EventLogAppender"

log4net.Appender.EventLogAppender"

--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->

AdoNetAppender_Access"

log4net.Appender.AdoNetAppender"

connectionString 

Provider=Microsoft.Jet.OLEDB.4.0;

Data 

Source=C:

log4net.mdb"

commandText 

INSERT 

INTO 

LogDetails 

([LogDate],[Thread],[Level],[Logger],[Message]) 

VALUES 

(@logDate, 

@thread, 

@logLevel, 

@logger,@message)"

--定义各个参数-->

parameter>

parameterName 

@logDate"

dbType 

String"

size 

240"

%date"

/parameter>

@thread"

%thread"

@logLevel"

%level"

@logger"

%logger"

@message"

%message"

--定义日志的输出媒介,下面定义日志以四种方式输出。

也可以下面的按照一种类型或其他类型输出。

-->

root>

--文件形式记录日志-->

appender-ref 

ref="

--控制台控制显示日志-->

--Windows事件日志-->

-- 

如果不启用相应的日志记录,可以通过这种方式注释掉

/root>

/log4net>

/configuration>

程序文件:

using 

System;

System.Collections.Generic;

System.Text;

System.Windows.Forms;

System.Reflection;

log4net;

//注意下面的语句一定要加上,指定log4net使用.config文件来读取配置信息

//如果是WinForm(假定程序为MyDemo.exe,则需要一个MyDemo.exe.config文件)

//如果是WebForm,则从web.config中读取相关信息

[assembly:

log4net.Config.XmlConfigurator(Watch 

true)]

namespace 

Log4NetDemo

{

/// 

summary>

利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库中(包括MS 

SQL 

Server, 

Access, 

Oracle9i,Oracle8i,DB2,SQLite)。

下面的例子展示了如何利用log4net记录日志

作者:

周公

时间:

2008-3-26

首发地址:

/summary>

public 

class 

MainClass

static 

void 

Main(string[] 

args)

//Application.Run(new 

MainForm());

//创建日志记录组件实例

ILog 

log 

log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

//记录错误日志

log.Error("

error"

new 

Exception("

发生了一个异常"

));

//记录严重错误

log.Fatal("

fatal"

发生了一个致命错误"

//记录一般信息

log.Info("

info"

);

//记录调试信息

log.Debug("

debug"

//记录警告信息

log.Warn("

warn"

Console.WriteLine("

日志记录完毕。

"

Console.Read();

}

运行结果:

控制台上的输出

日志文件内容

首先说明一点的是,log4net解决的问题是提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite)中,一般来说我们只需要提供一个描述性的字符串,然后log4net就会自动提供有关运行时的一些信息。

Log4Net的版本仍是1.2.10(2008年我写博文的时候也是这个版本),有.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文件的<

节点中增加配置(如果没有这个节点请手动增加),如下:

viewplaincopytoclipboardprint?

1.<

2. 

3.<

除此之外,还要在顶级节点<

下增加<

子节点。

在<

节点下就可以增加<

appender>

子节点,每个<

子节点代表一种记录日志的方式(仅在这里配置了不代表启用了)。

具体说来有如下Appender:

AdoNetAppender:

利用ADO.NET记录到数据库的日志。

AnsiColorTerminalAppender:

在ANSI窗口终端写下高亮度的日志事件。

AspNetTraceAppender:

能用中Trace的方式查看记录的日志。

BufferingForwardingAppender:

在输出到子Appenders之前先缓存日志事件。

ConsoleAppender:

将日志输出到控制台。

EventLogAppender:

将日志写到WindowsEventLog.

FileAppender:

将日志写到文件中。

LocalSyslogAppender:

将日志写到localsyslogservice(仅用于UNIX环境下).

MemoryAppender:

将日志存到内存缓冲区。

NetSendAppender:

将日志输出到WindowsMessengerservice.这些日志信息将在用户终端的对话框中显示。

RemoteSyslogAppender:

通过UDP网络协议将日志写到Remotesyslogservice。

RemotingAppender:

通过.NETRemoting将日志写到远程接收端。

RollingFileAppender:

将日志以回滚文件的形式写到文件中。

SmtpAppender:

将日志写到邮件中。

TraceAppender:

将日志写到.NETtrace系统。

UdpAppender:

将日志connectionlessUDPdatagrams的形式送到远程宿主或以UdpClient的形式广播。

关于使用log4net中可能会使用到的一些参数

%m(message):

输出的日志消息,如ILog.Debug(…)输出的一条消息

%n(newline):

换行

%d(datetime):

输出当前语句运行的时刻

%r(runtime):

输出程序从运行到执行到当前语句时消耗的毫秒数

%t(threadid):

当前语句所在的线程ID

%p(priority):

日志的当前优先级别,即DEBUG、INFO、WARN…等

%c(class):

当前日志对象的名称,例如:

%f(file):

输出语句所在的文件名。

%l(line):

输出语句所在的行号。

%数字:

表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。

下面以一个实际的例子来说明问题,比如在配置中有“%date[%thread](%file:

%line)%-5level%logger[%property{NDC}]-%message%newline”,那么实际的日志中会是如下格式:

“记录时间:

2010-11-1716:

16:

36,561线程ID:

[9]日志级别:

文件:

所在行ERROR出错类:

Log4NetDemo.Programproperty:

[(null)]-错误描述:

error

System.Exception:

在这里发生了一个异常,ErrorNumber:

2036084948”

关于对数据库的支持

前面已经说过,log4net是支持包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite在内的数据库的,如果是文件型数据库(如Access或SQLite)的话就需要指定数据库文件的位置(在Web中最好指定在有读写权限的文件夹下,并且实现创建好表),如果是网络数据库就需要指定正确的数据库连接字符串。

比如要记录到Oracle数据库中,在配置文件中可以增加一个<

appender>

节点,配置如下:

AdoNetAppender_Oracle"

connectionType 

System.Data.OracleClient.OracleConnection, 

System.Data.OracleClient, 

Version=1.0.3300.0, 

Culture=neutral, 

PublicKeyToken=b77a5c561934e089"

3. 

data 

source=[mydatabase];

User 

ID=[user];

Password=[password]"

4. 

Log 

(Datetime,Thread,Log_Level,Logger,Message) 

(:

log_date, 

:

thread, 

log_level, 

logger, 

message)"

5. 

bufferSize 

128"

6. 

7. 

log_date"

8. 

DateTime"

9. 

log4net.Layout.RawTimeStampLayout"

10. 

11. 

12. 

thread"

13. 

14. 

255"

15. 

16. 

17. 

18. 

19. 

20. 

log_level"

21. 

22. 

50"

23. 

24. 

25. 

26. 

27. 

28. 

logger"

29. 

30. 

31. 

32. 

33. 

34. 

35.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2