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记录日志的使用的更多相关文章

  1. [转]C#使用Log4Net记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  2. C# 使用 log4net 记录日志

    Ø  前言 在一般的开发应用中,都会涉及到日志记录,用于排查错误 或 记录程序运行时的日志信息.log4net 库是 Apache log4j 框架在 Microsoft .NET 平台的实现,是一个 ...

  3. ASP.NET Core使用log4net记录日志

    .NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...

  4. 用log4net记录日志信息

    在.net中用log4net记录日志信息,已经是很平常的事情了. log4net下载:http://logging.apache.org/log4net/download_log4net.cgi 百度 ...

  5. 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库

    最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...

  6. Windows服务使用log4net记录日志

    该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 比较流行的日志组件有以下四种,Topshelf都有相应的组件提供 log4net NL ...

  7. 使用Log4net记录日志(非常重要)

    使用Log4net记录日志   首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志 ...

  8. Log4net 记录日志

    配置文件 备注,需要放到根目录下面 <?xml version="1.0" encoding="utf-8"?> <configuration ...

  9. 使用 Log4Net 记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

随机推荐

  1. React.js入门笔记(再续):评论框的实现

    本案例来自React.js中文官网对应内容. 一. 运行环境 <link rel="stylesheet" type="text/css" href=&q ...

  2. node.js

    学习网址:http://www.jdon.com/idea/nodejs/

  3. 再谈如何使用Taglist?

    以前使用个taglist, 但是只是查看, 没有熟练的去使用, 补充一下: 参考文章: http://blog.csdn.net/vaqeteart/article/details/4146618 用 ...

  4. ThinkPHP Where 条件中使用表达式

    本文转自:这里 Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名.上述格式中的表达式 ...

  5. String字符串针对常量池的优化

    String对象是java语言中重要的数据类型,但是不是基本数据类型.相对于c语言的char java做了一些封装和延伸. 针对常量池的优化:当两个String拥有相同的值时,它们只引用常量池中的同一 ...

  6. Excel—如何解决数组求和运算时行列不匹配产生的错误

    1.如下所示: 使用SUM对两个数组A1:B2,C1:E3进行运算时,由于行列不匹配返回了错误值. 2.可通过使用IFERROR进行解决. 对判断生成的错误值,通过用0替代进行解决. 3.除以上外,由 ...

  7. [Computational Advertising] 计算广告学笔记之基础概念

    因为工作需要,最近一直在关注计算广告学的内容.作为一个新手,学习计算广告学还是建议先看一下刘鹏老师在师徒网的教程<计算广告学>. 有关刘鹏老师的个人介绍:刘鹏现任360商业产品首席架构师, ...

  8. Matlab与Windows桌面提醒

    最近在实验室用Matlab做实验,一次训练下来最少得也得5到10分钟吧.在Matlab运行的过程中,又不太好去做别的事情,因为5到10分钟的时间实在有点短.但是,眼睁睁看着代码的运行的话,5分钟又实在 ...

  9. SQL Server数据库SP命令祥解

    1.数据库: (1)sp_helpdb:报告有关指定数据库或所有数据库的信息.例:sp_helpdb   --显示所有数据库信息(名称.大小等)例:sp_helpdb Recruitment   -- ...

  10. rpc-1-OSI模型

    rpc-1-OSI模型 第一部分,网络7层协议 1. OSI模型: 开放通信系统互联网参考模型,是国际标准化组织(ISO),提出的一个,试图使各种计算机在世界范围内互连为网络的模式.(遵循这个模式,计 ...