如何使用log4net

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 第一步,工程中引入log4net.dll第二步,在AssemblyInfo.cs加入这一行,指定log4net的配置文件 [assembly: log4net.Config.XmlConfigurator(ConfigFile="cxylog4net.exe.config", Watch=true)]  第三步,在配置文件中指定以下内容 <?xml version

第一步,工程中引入log4net.dll
第二步,在AssemblyInfo.cs加入这一行,指定log4net的配置文件

[assembly: log4net.Config.XmlConfigurator(ConfigFile = " cxylog4net.exe.config " , Watch = true )]

 第三步,在配置文件中指定以下内容

<? 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 ="e: est.log"   />
            
< appendToFile  value ="true"   />
            
< rollingStyle  value ="Size"   />
            
< maxSizeRollBackups  value ="10"   />
            
< maximumFileSize  value ="2KB"   />
            
< staticLogFileName  value ="true"   />
            
< layout  type ="log4net.Layout.PatternLayout" >
                
< footer  value ="[Footer]--Test By cxy1981 &#13;&#10;"   />
                
< conversionPattern  value ="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n"   />
            
</ layout >
        
</ appender >

        
< root >
            
< priority  value ="ALL"   />
            
< appender-ref  ref ="RollingLogFileAppender"   />
        
</ root >
    
</ log4net >
</ configuration >
第五步,在类中写下以下内容
using  log4net;
private   static   readonly  ILog log  =  LogManager.GetLogger(
  System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

这样我们就可使用log4net来记录我们所需要的内容了
if (log.IsErrorEnabled)
{
    log.Error("Page Load failed : " + ex.Message);
}


以下是转自这个地址的关于log4net的说明
http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html
Log4net核心组成
Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。

一)Logger(日志)

1.记录日志的分类:
Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。

2. 日志的级别
Log4net支持多种级别的日志。优先级从高到低依次排列如下:
FATAL > ERROR > WARN > INFO > DEBUG
此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。

二)Appenders

Appenders决定日志输出的方式。
Appenders必须实现log4net.Appenders.IAppender接口。

Log4net目前支持的输出方式包括:
1 AdoNetAppender
    将日志记录到数据库中。可以采用SQL和存储过程两种方式。
2 AnsiColorTerminalAppender
    在ANSI 窗口终端写下高亮度的日志事件。
3 AspNetTraceAppender
    能用asp.net中Trace的方式查看记录的日志。
4 BufferingForwardingAppender
    在输出到子Appenders之前先缓存日志事件。
5 ConsoleAppender
    将日志输出到控制台。
6 EventLogAppender
    将日志写到Windows Event Log.
7 FileAppender
    将日志写到文件中。
8 LocalSyslogAppender
    将日志写到local syslog service (仅用于UNIX环境下).
9 MemoryAppender
    将日志存到内存缓冲区。
10 NetSendAppender
    将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
11 RemoteSyslogAppender
    通过UDP网络协议将日志写到Remote syslog service。
12 RemotingAppender
    通过.NET Remoting将日志写到远程接收端。
13 RollingFileAppender
    将日志以回滚文件的形式写到文件中。
14 SmtpAppender
    将日志写到邮件中。
15 TraceAppender
    将日志写到.NET trace 系统。
16 UdpAppender
    将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。

三)Filters

Appender对象将日志以缺省的方式传到输出流,然后Filter可以按照不同的标准控制日志的输出。Filter可以再配置文件中配置。最简单的形式是在appender中写明一个Threshold.这样只有级别大于或等于此Threshold的日志才被记录。
Filters必须实现log4net.Filters.IFilter接口。

四)Layouts

Layouts控制日志显示的格式样式。日志的显示格式如下:
"%timestamp [%thread] %-5level %logger - %message%newline"
Timestamp: 表示程序已经开始执行的时间。 单位[毫秒]。
Thread:执行当前代码的线程。
Level:日志的级别。
Logger:日志相关请求的名称。
Message: 日志消息。

Layouts还可以控制日志的输出样式,比如以普通形式或以xml等形式输出。

五) Object Renderers

这是很重要的一项,log4net将按照用户定义的标准输出日志消息。
Object Renders必须实现log4net.ObjectRenderer.IObjectRenerer接口。

小例子的源代码

http://dl2.csdn.net/down4/20070713/13172335911.rar

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
419 2
|
SQL 关系型数据库 MySQL
信创迁移适配实战-修改Nacos2.0.4源码以连接达梦数据库DM8
信创迁移适配实战-修改Nacos2.0.4源码以连接达梦数据库DM8
4185 0
信创迁移适配实战-修改Nacos2.0.4源码以连接达梦数据库DM8
|
存储 缓存 NoSQL
redis实战-缓存穿透、缓存击穿、缓存雪崩
redis实战-缓存穿透、缓存击穿、缓存雪崩
289 0
|
XML Java API
一个超简单的渐变平行四边形进度条
这个自定义View,其实就是一个简单的进度条,无非就是平行四边形形状的,加了渐变以及状态颜色的切换。
271 0
|
存储 前端开发 安全
4-SpringSecurity:CSRF防护
4-SpringSecurity:CSRF防护
456 0
4-SpringSecurity:CSRF防护
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
271 116