Log4net(1):配置的简单说明
基础代码下载地址:https://github.com/zhangsai521314/StudyLog4net
1:按日期分隔日志
<configSections>
<section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<logger name="StudyLog4net">
<!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4netAppen下的配置-->
<appender-ref ref="StudyLog4net_File" />
</logger>
<!--按日期分割日志文件 一天一个-->
<appender name=" StudyLog4net_File" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log\ StudyLog4net_File\ StudyLog4net_File.log"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n"/>
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="rollingFile"/>
</root>
</log4net>
说明: File——文件存放路径
AppendToFile—— 是否打开续写
RollingStyle——文件创建的方式
DatePattern——日期格式,当我们设置了RollingStyle 为Date方式后,Log4Net会自动使用DatePattern—— 中的日期格式来创建新的日志文件
StaticLogFileName——是否使用静态文件名
ConversionPattern——信息书写的布局样式设置
Level——日志记录的类型
rollingFile—
2:按日志大小分隔日志
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<logger name="StudyLog4net2">
<!--指定Log4.net第三个参数为StudyLog4net的则会执行StudyLog4net下的配置-->
<appender-ref ref="StudyLog4net_Size" />
</logger>
<!--按日志容量分割日志文件-->
<appender name="StudyLog4net_Size" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="Log\StudyLog4net_Size\StudyLog4net_Size.log" />
<!--是否续写-->
<param name="AppendToFile" value="true" />
<!--是否使用静态文件名-->
<param name="StaticLogFileName" value="false" />
<!--按照文件的大小进行变换日志文件-->
<param name="RollingStyle" value="Size" />
<!--单个文件最大容量 只有在 按Size分割时有效-->
<param name="MaximumFileSize" value="10KB"/>
<!--保留的log文件数量,超过此数量后,自动从最后的删除,按Size分割时有效-->
<param name="MaxSizeRollBackups" value="2" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n" />
</layout>
</appender>
<root>
<!--日志记录的类型-->
<level value="All" />
<!--启用按容量分割-->
<appender-ref ref="LogFileAppenderBySize" />
</root>
</log4net>
3:将日志输出到数据库(SqlServer)
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net> <!--当时把日志插入到数据库的时候,必须有appender-ref。否则插不进去-->
<logger name="sourec">
<appender-ref ref="ADONetAppender" />
</logger>
<!--SQL数据库-->
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <!--缓存区,值为1的时候并发插入的日志信息最完整-->
<bufferSize value="1"/> <!-- SQL数据源-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <!-- SQL连接字符串-->
<connectionString value="data source=.;initial catalog=zhangsai;integrated security=False;persist security info=True;User ID=sa;Password=123456" /> <!--SQLServer插入语句-->
<commandText value="INSERT INTO Log ([RecordTime],[LevelName],[Message],[Exception]) VALUES (@log_date, @log_level, @message, @exception)"/>
<!--SQLServer创建数据库语句
create table Log
(
[ID] int identity(1,1) primary key
,[RecordTime] datetime
,[LevelName] varchar(30)
,[Message] varchar(2000)
,[Exception] varchar(4000)
)-->
<!--日期-->
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<!--日志级别-->
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<!--错误信息-->
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
<!--日志信息-->
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
</appender>
<root>
<!--日志记录的类型-->
<level value="All" />
<!-- 启用保存到数据库-->
<appender-ref ref="AdoNetAppender" />
</root>
</log4net>
4:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<logger name="ConsoleAppender">
<!--指定Log4.net第三个参数为StudyLog4net的则会执行ConsoleAppender下的配置-->
<appender-ref ref="ConsoleAppender" />
</logger>
<!--定义输出到控制台命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
</appender>
<root>
<!--日志记录的类型-->
<level value="All" />
<!--控制台控制显示日志-->
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
常见的日志书写格式说明:
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
Appender下的常用节点说明:
AdoNetAppender:利用ADO.NET记录到数据库的日志。
RollingFileAppender:将日志以回滚文件的形式写到文件中
ConsoleAppender:将日志输出到控制台。
FileAppender:将日志写到文件中。
AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
EventLogAppender:将日志写到Windows Event Log.
LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
MemoryAppender:将日志存到内存缓冲区。
NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
RemotingAppender:通过.NET Remoting将日志写到远程接收端。。
SmtpAppender:将日志写到邮件中。
TraceAppender:将日志写到.NET trace 系统。
UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
写文不易,转载请注明出处:http://www.cnblogs.com/zszs/p/5662603.html
Log4net(1):配置的简单说明的更多相关文章
- log4net日志的配置及简单应用
在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率.而本菜鸟在大神推荐和指导下使用log4net这一插件工 ...
- C# 日志输出工具库—log4net 安装、配置及简单应用
1.下载和安装 注意每次安装只是安装到本项目中,换了另一个项目需要再次安装和配置. 我使用的是Visual Studio 2013 社区版,在tools中找到NuGet包管理. 搜索log4net并点 ...
- C# log4net 的配置
项目的日志组件是必备可少的,任何项目中都需要.这样既方便前期的开发测试也方便项目后期的项目维护.C#项目的一个不错的日志组件是log4net,下面我就把桌面应用程序.控制台程序.网站中log4net的 ...
- 使用Log4net创建日志及简单扩展
如何使用Log4net创建日志及简单扩展 1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的 ...
- Log4Net.Config配置信息《转》
看了log4net的简单使用之一_log4net介绍 大家对log4net组件应该有了大概的了解,下面再近一步介绍其在项目中如何应用. 1.Logger 所有的记录器都必须实现 ILog 接口,该接口 ...
- log4net 配置文件配置方法
转自:http://www.dozer.cc/2013/06/log4net-config-file-order/ 最近把项目中所有的日志都改成了 log4net ,同事也蠢蠢欲动,用起了 log4n ...
- Win8.1下FreeImage.lib库的配置和简单使用(转)
转自http://www.codeweblog.com/win8-1下freeimage-lib库的配置和简单使用/ 首先,你可以从这里获取FreeImage的完整库文件(访问密码 9a5e). 配置 ...
- LOG4NET日志配置及使用
Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...
- log4net的配置与使用
log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQ ...
随机推荐
- a biped was detected but cannot be configured properly (Bipe导入Unity 无法正确识别)
OP stated "I export the biped with 'animation' and 'bake animation' ticked and the correct fram ...
- XPath 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 XML 文档. & ...
- 旅游行业的手机App Top5
旅游类app分为很多种类,有我们大众认知的典型旅游app像携程旅行,途牛旅游:也有短程的提供代步功能的app,比如滴滴出行,快的打车:还包括我们的火车票,机票的预订app.所以旅游类app是一个很宽阔 ...
- iOS 开发:利用第三方插件来安装CoCoapods
引言:通过上一篇博客我们知道了怎么样去通过终端来安装CoCoapods,这一篇我们着重与用第三方插件来安装CoCoapods: 1. 首先在提下链接下载插件 https://github.com/ka ...
- CheckBox 半选中状态
<input type='checkbox' />可以半选中,这个特性,很多浏览器都支持,包括Firefox,Chrome和IE 用 input.indeterminate 这个属性来获取 ...
- 用 正则表达式 限定XML simpleType 定义
<xsd:simpleType name="ResTrictions"> <xsd:restriction base="xsd:string" ...
- DNS-2
ipconfig 用法: ipconfig [/allcompartments] [/? | /all | /renew [adapter] | /release [adapter] | /renew ...
- JavaScriptCore 使用
JavaScriptCore JavaScriptCore是webkit的一个重要组成部分,主要是对JS进行解析和提供执行环境.代码是开源的,可以下下来看看(源码).iOS7后苹果在iPhone平台推 ...
- QT数据库操作
浏览: 在QSqlQuery类中当执行exec()后会把指针放在记录集中第一个记录之上,所以需要调用QSqlQuery::next()来获取第一个数据,下面通过循环体来遍历所有表中的数据. while ...
- 浮点型数据运算精度bug
/** * 校验是否为数字 * @param arg * @return */ function checkIsNumber(arg){ if(arg != null && arg.t ...