Log4Net日志记录两种方式

2018-01-13 10:56:30来源:网络收集作者:管理员人点击

分享

阿里云爆款


简介



     Log4Net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
     log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。(f:百度百科)



原理



     Log4net是基于.NET开发的一款记录日志开源组件。它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL 、 ERROR、 WARN、 INFO 、 DEBUG、ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个是不是很熟悉?可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误、警告之类的提示信息,它们的错误级别在不断的降低。



log4net开源项目结构如图所示:Log4Net日志记录两种方式



     通过查看源码,log4net主要有5个核心部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders,在配置文件中它们以节点的形式出现。


 Logger:主要负责日志的记录,它记录的方式有多种,可以是以文件、数据库、控制台、邮件等多处方式;Appenders:主要负责记录日志介质的方式,它的输出方式主要包括:AdoNetAppender:将日志记录到数据库中。可以采用SQL和存储过程两种方式

AspNetTraceAppender:能用ASP.NET中跟踪的方式查看记录的日志。


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


ColoredConsoleAppender:在终端的窗口写下高亮度的日志事件。ConsoleAppender:将日志输出到控制台。
EventLogAppender:将日志写到Windows操作系统的日志中去。FileAppender:将日志写到文件中。ForwardingAppender:用来为一个Appender指定一组约束。MemoryAppender:将日志存到内存缓冲区。NetSendAppender:将日志输出到Windows Messenger service,这些日志信息将在用户终端的对话框中显示。OutputDebugStringAppender:配置该Appender以向OutputDebugString API写入日志。RemotingAppender:通过.NET Remoting将日志写到远程接收端。RollingFileAppender:将日志以回滚文件的形式写到文件中。SmtpAppender:将日志写到邮件中。SmtpPickupDirAppender:配置与SmtpAppender类似,但要把SmtpHost换为PickupDir。TraceAppender:将日志写到.NET trace 系统。UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。


     以上有些输出方式可能会经常用到(比如写入文件和数据库的方式),有些可能会不经常用到(邮件方式等),具体我们在下面举例来说明。



    3.Layouts:主要负责把记录日志格式化输出,显示得格式主要如下:



        %timestamp [%thread] %-5level %logger{2} %ndc - %message%newline



  timestamp: 表示程序已经开始执行的时间。 单位[毫秒]。



  Thread:执行当前代码的线程。



  Level:日志的级别。



  Logger:日志相关请求的名称。



  Message:日志消息。



  newline:换行。



案例一:文件记录方式



     首先引用Log4net.dll,然后在添加一个配置文件log4net.config(这里不将配置信息写入web.config,个人觉得写在一起实在太乱)中添加下面的配置信息(注意应和web.config处于相同的位置,即根目录下):


Log4Net日志记录两种方式

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台