码迷,mamicode.com
首页 > Web开发 > 详细

Log4net简述

时间:2015-11-26 12:51:54      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

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>
View Code

Log4net简述

标签:

原文地址:http://www.cnblogs.com/wanliwang01/p/log4net_base.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!