Log4Net记录日志的使用
Log4net 基本样式:
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Mylog/" />
<param name="AppenderToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
<!--过滤器:将只记录level为DEBUG与WARN之间的日志-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG">
<param name="LevelMax" value="WARN">
</filter>
</appender>
<root>
<!--缺省为DEBUG级别-->
<level value="DEBUG">
<!--声明了在其他地方定义的Appender对象的一个引用-->
<appender-ref ref="LogFileAppender">
</root>
<!-- logger标签不是必须的 Additivity的值缺省是true-->
<logger name="testApp.Logging" additivity="false">
<level value="DEBUG" />
</logger>
</log4net>
Log4net.config
Log4Net配置文件的书写
添加section
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
按日期分隔文件
<!-- 按日期分隔文件 -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\\MyLogFiles\\ClientService\log4net\"/>
<!-- 是否在文件中追加 -->
<param name="AppendToFile" value="true"/>
<!-- 最小锁定模型以允许多个进程可以写入同一个文件 -->
<param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
<!--最多生成(MaxSizeRollBackups的值+1)个文件。如果注释掉,那么只生成一个文件。到了轮训条件,会从最早的开始覆盖以前的信息-->
<!-- 好像只有按Size分隔文件,才有效果 -->
<param name="MaxSizeRollBackups" value="31"/>
<!--如果RollingStyle为Size,这里需要填写正数加上单位(KB,MB)-->
<param name="MaximumFileSize" value="-1"/>
<!--轮询方式,文件大小,超过MaximumFileSize的值,则重新生成一个文件-->
<!--<param name="RollingStyle" value="Size"/>-->
<!--轮询方式,日期,每天生成一个文件。非当天的文件,会在File的值后面加上20151215-->
<param name="RollingStyle" value="Date"/>
<param name="StaticLogFileName" value="false"/>
<param name="datePattern" value="'zsyylog'yyyyMMdd'.txt'" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
添加到MSSQL数据库
<appender name="AdoNetAppender_SQLServer" type="log4net.Appender.AdoNetAppender">
<!-- 缓存大小 -->
<bufferSize value="300" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="SERVER=10.10.4.85;UID=zsyy;Pwd=zsyy*123;DATABASE=HandheldYonYou" />
<commandText value="INSERT INTO [HandheldYonYou].[dbo].[Log4net_Log]([Date],[RequestUID],[RequestPort],[RequestUri],[StringType],[RequestMethod],[ApiVersion],[Message],[Thread],[Level],[Logger],[Exception])
VALUES(@log_date ,@RequestUID ,@RequestPort ,@RequestUri,@StringType,@RequestMethod,@ApiVersion,@message ,@thread ,@log_level ,@logger ,@exception )" />
<parameter>
<!-- 字段名称 -->
<parameterName value="@RequestUID" />
<!-- 字段数据类型 -->
<dbType value="String" />
<!-- 字段数据长度 -->
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{RequestUID}" />
</layout>
</parameter>
<parameter>
<parameterName value="@RequestPort" />
<dbType value="String" />
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{RequestPort}" />
</layout>
</parameter>
<parameter>
<parameterName value="@RequestUri" />
<dbType value="String" />
<size value="2000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{RequestUri}" />
</layout>
</parameter>
<parameter>
<parameterName value="@StringType" />
<dbType value="String" />
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{StringType}" />
</layout>
</parameter>
<parameter>
<parameterName value="@RequestMethod" />
<dbType value="String" />
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{RequestMethod}" />
</layout>
</parameter>
<parameter>
<parameterName value="@ApiVersion" />
<dbType value="String" />
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{ApiVersion}" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</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="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
记录日志的方式
<root>
<!-- 日志的等级(ALL、DEBUG、WRONG、ERROR、INFO) -->
<level value="ALL"/>
<!-- 将日志记录到SQL -->
<appender-ref ref="AdoNetAppender_SQLServer"/>
<!-- 循环将日志添加到文件 -->
<appender-ref ref="RollingFileAppender"/>
</root>
Log4Net记录日志的使用的更多相关文章
- [转]C#使用Log4Net记录日志
第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-n ...
- C# 使用 log4net 记录日志
Ø 前言 在一般的开发应用中,都会涉及到日志记录,用于排查错误 或 记录程序运行时的日志信息.log4net 库是 Apache log4j 框架在 Microsoft .NET 平台的实现,是一个 ...
- ASP.NET Core使用log4net记录日志
.NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...
- 用log4net记录日志信息
在.net中用log4net记录日志信息,已经是很平常的事情了. log4net下载:http://logging.apache.org/log4net/download_log4net.cgi 百度 ...
- 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库
最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...
- Windows服务使用log4net记录日志
该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 比较流行的日志组件有以下四种,Topshelf都有相应的组件提供 log4net NL ...
- 使用Log4net记录日志(非常重要)
使用Log4net记录日志 首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志 ...
- Log4net 记录日志
配置文件 备注,需要放到根目录下面 <?xml version="1.0" encoding="utf-8"?> <configuration ...
- 使用 Log4Net 记录日志
第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-n ...
随机推荐
- 【转】C# 将字符串或表达式直接转为可执行代码的办法
C# 将字符串或表达式直接转为可执行代码的办法 反射类 using System; using System.Data; using System.Configuration; using Syste ...
- Myeclipse不显示js文件错误的方法
最近在学后台,用Myeclipse ,那么问题来了,Myeclipse 总是喜欢报 js 文件的错误,这就很烦了,看着也不舒服. 查看资料后,解决方法如下: 项目[鼠标右键] -> MyEcli ...
- make menuconfig出错,需要安装libncurses5-dev找不到文件的终极解决办法(不必更换源,适用于ubuntu 32位平台)
make menuconfig 错误,显示有curse 字样的文件没有装.用apt-get install 找不到,网上其他的办法说是源的问题,所以又更新了一下源,但是还是不好用,网速慢,更新太慢. ...
- jq 个性的隔行变色
效果图大致这样: 我的html格式部分这样:/*不过他们都说我的dom结构不太合理,同意.BUT,我就是不想写表格而写成的这样的,所以后面jq部分也要迁就了*/ <div class=&qu ...
- java中 IndexOf()、lastIndexOf()、substring()的用法
public int indexof(String str)返回字符串中出现str的第一个位置 public int indexof(String str,int fromIndex)返回字符串中从f ...
- Javascript模块化编程(二):AMD规范
Javascript模块化编程(二):AMD规范 作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_d ...
- 项目经理排期的几个tip
互联网敏捷开发的流程可以演绎出很多玩法,但最好都遵循以下几个tip: 1, 对项目经理最重要的一条是,通读所有需求文档,跟相关PM进行彻底沟通,把需求都搞熟搞透,防止漏排任务: 2, Stroy拆分要 ...
- python基础八
面向对象的好处 更容易扩展.提高代码使用效率,使你的代码组织性更强, 更清晰,更适合复杂项目的开发 封装 把功能的实现细节封装起来,只暴露调用接口 继承 多态 接口的继承 定义 类 ===> ...
- linux Mint wine安装qq,桌面快捷键配置
在桌面新建qq.desktop文件,添加以下内容 #!/usr/bin/env xdg-open[Desktop Entry]Comment=QQTerminal=falseName=QQExec=w ...
- iOS Architectures 浅谈
iOS项目打包,或者只是在项目里面调用第三方静态库抑或是自己新建一个静态库,就要无可避免的和Architectures打交道.Architectures在Targets面板的Build Setting ...