Log4net简述

Log4net是阿帕奇基金会的非常流行的开源日志组件,是log4j的.NET移植版本,至今已经有11年的历史,使用方便并且非常稳定,此外很重要的一点是其和很多开源组件能很好的组合在一起工作,例如NHibernate等。对于以本地日志为主的中小型的项目,Log4net已经足够使用,当然涉及跨平台的大型分布式系统可以选择Elmah等其他日志组件。

在这里,主要介绍log4net的一些关键知识点,详细内容可见以下链接:

首先是log4net的四个对象:

  • Logger记录器:用于产生日志,包括Fatal、ERROR、WARN、INFO、DEBUG,可以通过设置logger的记录级别进行设置,例如level=INFO,那么除了DEBUG级别的信息,其他FATAL、ERROR、WARN、INFO等级别都将被记录。
  • Reposity库:维护日志对象的组织结构,主要用于对框架的扩展,一般使用不用关注。
  • Appender附着器:用于设置Log的输出模式,如文件、数据库、邮件等。
  • Layout布局:设置日志信息的格式。

其中Appender的选择很多,但最常见的最有实际意义的分别是:

log4net.Appender.RollingFileAppender:通过配置,可以达到日志文件每天以日期新建一个,方便查看,还可以设置日志文件大小,防止侵占硬盘。

log4net.Appender.SmtpAppender:用于FATAL、ERROR等高危级别的日志,直接发邮件给项目责任人,非常的方便有效。

log4net.Appender.AdoNetAppender:和SQL SERVER很紧密的结合,便于将重要日志信息记入数据库,便于查找和备份。

最后,想说的是log4net组件可以通过配置LockingModel设置并发时日志文件锁的模式,使其应用场景得到很大的扩充。

附上一个简单日志配置例子作为参考,具体设置时有什么问题欢迎一起探讨哈,:) :

  1 <?xml version="1.0" encoding="utf-8"?>
  2
  3 <configuration>
  4
  5 <configSections>
  6
  7 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  8
  9 </configSections>
 10
 11 <log4net>
 12
 13 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
 14
 15 <layout type="log4net.Layout.PatternLayout">
 16
 17 <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>
 18
 19 </layout>
 20
 21 </appender>
 22
 23 <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 24
 25 <bufferSize value="100"/>
 26
 27 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
 28
 29 <connectionString value="data source=(localdb)\v11.0;initial catalog=NormalTest;integrated security=false;persist security info=True;User ID=[user];Password=[pwd]"/>
 30
 31 <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/>
 32
 33 <parameter>
 34
 35 <parameterName value="@log_date"/>
 36
 37 <dbType value="DateTime"/>
 38
 39 <layout type="log4net.Layout.RawTimeStampLayout"/>
 40
 41 </parameter>
 42
 43 <parameter>
 44
 45 <parameterName value="@thread"/>
 46
 47 <dbType value="String"/>
 48
 49 <size value="255"/>
 50
 51 <layout type="log4net.Layout.PatternLayout">
 52
 53 <conversionPattern value="%thread"/>
 54
 55 </layout>
 56
 57 </parameter>
 58
 59 <parameter>
 60
 61 <parameterName value="@log_level"/>
 62
 63 <dbType value="String"/>
 64
 65 <size value="50"/>
 66
 67 <layout type="log4net.Layout.PatternLayout">
 68
 69 <conversionPattern value="%level"/>
 70
 71 </layout>
 72
 73 </parameter>
 74
 75 <parameter>
 76
 77 <parameterName value="@logger"/>
 78
 79 <dbType value="String"/>
 80
 81 <size value="255"/>
 82
 83 <layout type="log4net.Layout.PatternLayout">
 84
 85 <conversionPattern value="%logger"/>
 86
 87 </layout>
 88
 89 </parameter>
 90
 91 <parameter>
 92
 93 <parameterName value="@message"/>
 94
 95 <dbType value="String"/>
 96
 97 <size value="4000"/>
 98
 99 <layout type="log4net.Layout.PatternLayout">
100
101 <conversionPattern value="%message"/>
102
103 </layout>
104
105 </parameter>
106
107 <parameter>
108
109 <parameterName value="@exception"/>
110
111 <dbType value="String"/>
112
113 <size value="2000"/>
114
115 <layout type="log4net.Layout.ExceptionLayout"/>
116
117 </parameter>
118
119 </appender>
120
121 <appender name="Log4Net_INFO" type="log4net.Appender.RollingFileAppender">
122
123 <file value="C:/log4net/LuceneDemo/info/"/>
124
125 <appendToFile value="true"/>
126
127 <RollingStyle value="Date"/>
128
129 <DatePattern value="yyyyMMdd&quot;.log&quot;"/>
130
131 <StaticLogFileName value="false"/>
132
133 <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
134
135 <layout type="log4net.Layout.PatternLayout">
136
137 <Header value="[Header]"/>
138
139 <Footer value="[Footer]"/>
140
141 <ConversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 信息类:%logger property:[%property{NDC}] - 信息描述:%message%newline"/>
142
143 </layout>
144
145 </appender>
146
147 <root>
148
149 <level value="INFO"/>
150
151 <appender-ref ref="Log4Net_INFO"/>
152
153 <appender-ref ref="AdoNetAppender"/>
154
155 </root>
156
157 </log4net>
158
159 </configuration>

时间: 2024-10-14 22:05:24

Log4net简述的相关文章

Log4net系列一:Log4net搭建之文本格式输出

Log4net简介 前言 项目开发中,记录项目日志是必须的,如果非要说日志的重要性(日志可看做,飞机的黑匣子,或者汽车的行车记录仪),根据等级进行记录,方便我们排查相关问题,以后项目运维中,也方便很多.基本上我们进入一家公司,开发你从事什么岗位,公司产品或项目的框架都已经搭建好,我们有时候进行改版,根据业务延伸框架,记录日志基本都是我们自己去调用封装的方法.今天我们就对Log4net进行一下学习,Log4net可以做到:1.邮箱发送日志:2.记录到数据库:3.生成记事本文件.本章Log4net学

Hibernate简述及入门实例

一.Hibernate简述 总的概括,Hibernate是一个ORM的轻量级持久层框架,解决了对象和关系数据库中表的不匹配问题(阻抗不匹配)以及拥有开发代码不用去继承hibernate类或接口的优势(无侵入性).hibernate框架实现使得开发人员可以避免反复地编写javajdbc部分代码,应用面向对象的思维操作关系型数据库. 二.使用myeclipse创建hibernate实例两种方法(以hibernate3.5.2及mysql为例) a)手动编写hibernate.cfg.xml及*.hb

Struts2基本使用(二)--配置文件简述

配置文件简述 引入Struts2框架之后项目中多了一个struts.xml,以及web.xml也多了一些代码 web.xml只要的功能就是拦截用户的请求其多出的代码如下: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class&

log4net 使用总结- (2)在ASP.NET MVC 中使用

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="

(转)非常完善的Log4net详细说明

转自:http://www.cnblogs.com/zhangchenliang/p/4546352.htmlhttp://www.cnblogs.com/zhangchenliang/p/4546352.html (转)非常完善的Log4net详细说明 1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是介绍如何在Visual Studio2008中使用log4net快速创

Log4Net 之初体验

今天试了一下关于日志的一个插件--Log4Net 关于这个插件就不过多描述了,有很多人用,也挺好用比较方便,所以在此记录下使用过程. 一.建一个mvc 空网站 名字叫 Log4NetTest 二.下载log4net.dll 并添加引用,也可以用NuGet在线安装 三.在Models  文件夹下建立MyErrorAttribute 大概就是把所有的错误丢进队列里面去,并且继承 HandleErrorAttribute 代码就如下: using System; using System.Collec

简述23种软件设计模式

简述23种软件设计模式 一.设计模式分类 总体来说设计模式分为三大类: 五种创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 七种结构型模式:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 十一种行为型模式:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式概述 创建型模式 1.工厂方法模式 工厂方法模式的创建是因为简单工厂模式有一个问题,在简单工厂模式

log4net 既要按日期分割日志文件,又要按文件大小分割。

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <file value="log\debug\"/> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePatte

Spark 学习: spark 原理简述与 shuffle 过程介绍

Spark学习: 简述总结 Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境.提供了 java,scala, python,R 等语言的调用接口. Spark学习 简述总结 引言 1 Hadoop 和 Spark 的关系 Spark 系统架构 1 spark 运行原理 RDD 初识 shuffle 和 stage 性能优化 1 缓存机制和 cache 的意义 2 shuffle 的优化 3 资源参数调优 4 小结 本地搭建 Spark 开发环境 1 Spark-Scal