原文:https://www.cnblogs.com/pudefu/p/9300697.html

官方的api:

    http://logging.apache.org/log4net/release/sdk/index.html

    http://logging.apache.org/log4net/

demo下载地址:

  https://files.cnblogs.com/files/guxingy/log4net%E7%AE%80%E5%8D%95%E6%B5%8B%E8%AF%95.rar

  环境:vs2019打开即可

照着做基本没问题,另一个配置文件 格式要友好些

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<!-- Debug 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="App_Data/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Debug.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="1MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" 【日志时间】: %d 【线程ID】: %thread 【日志级别】: %-5p 【日志对象】:%logger 【日志内容】:%m " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Debug" />
<param name="LevelMax" value="Debug" />
</filter>
</appender> <!-- Info 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="App_Data/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Info.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="1MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" 【日志时间】:%d 【线程ID】:%thread 【日志级别】:%-5p 【日志对象】:%logger 【日志内容】:%m " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Info" />
</filter>
</appender> <!-- WARN 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="App_Data/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Warn.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="1MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" 【日志时间】:%d 【线程ID】:%thread 【日志级别】:%-5p 【日志对象】:%logger 【日志内容】:%m " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Warn" />
<param name="LevelMax" value="Warn" />
</filter>
</appender> <!-- Error 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="App_Data/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Error.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="1MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" 【日志时间】:%d 【线程ID】:%thread 【日志级别】:%-5p 【日志对象】:%logger 【日志内容】:%m " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Error" />
<param name="LevelMax" value="Error" />
</filter>
</appender> <!-- Fatal 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="App_Data/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Fatal.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="1MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" 【日志时间】:%d 【线程ID】:%thread 【日志级别】:%-5p 【日志对象】:%logger 【日志内容】:%m " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Fatal" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender> <root>
<!--控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
如果没有定义LEVEL的值,则缺省为DEBUG-->
<appender-ref ref="RollingFileDebug" />
<appender-ref ref="RollingFileInfo" />
<appender-ref ref="RollingFileWarn" />
<appender-ref ref="RollingFileError" />
<appender-ref ref="RollingFileFatal" />
<level value="DEBUG" />
</root>
<logger name="NHibernate">
<level value="WARN" />
</logger>
</log4net>
</configuration>

效果如图:

测试代码:

开源项目 13 log4net的更多相关文章

  1. 【开源项目13】Volley框架 以及 设置request超时时间

    Volley提供了优美的框架,使android程序网络访问更容易.更快. Volley抽象实现了底层的HTTP Client库,我们不需关注HTTP Client细节,专注于写出更加漂亮.干净的RES ...

  2. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  3. 开源的13个Spring Boot 优秀学习项目!超53K星,一网打尽!

    Spring Boot 算是目前 Java 领域最火的技术栈了,也是Java开发人员不得不掌握的技术,今天给大家整理了13个优质 Spring Boot 开源项目给大家参考,希望能够帮助到正在学习 S ...

  4. [ionic开源项目教程] - 第13讲 Service层优化,提取公用Service,以及生活和农业两大模块的实现

    关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现生活和农业两大模块的实现,在这个过程中,对service层提取出一个公用的BaseService. 这一讲分为 ...

  5. .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  6. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  7. 【目录】本博客其他.NET开源项目文章目录

    本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.本博客其他.NET开源项目文章目录 37..NET平台开源项目速览(17)FluentConsole让你的控制台酷起来 36..NET平 ...

  8. 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧

    注意:有网友提出部分项目停止更新的事情,这个问题我特意注意过,很多都是小功能组件,功能稳定,没有bug,没更新是正常的.够用就行了.其次技术支持的事情,对开源免费来说,不能太强求,这里发布的都是小功能 ...

  9. 收集常用的.net开源项目

    Json.NET http://json.codeplex.com/ Json.NET是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Lin ...

随机推荐

  1. JavaScriptES6中Map与对象、数组,JSON之间的相互转换

    JavaScriptES6中Map与对象.数组,JSON之间的相互转换 https://blog.csdn.net/c__dreamer/article/details/82183130

  2. 微信小程序图像增强img.superresolution接口

    整体流程: 获得access_token 调用img.superresolution得到media_id 根据media_id下载图片 注:虽然以下的几个接口都是服务端API,但是我都是在客户端调用的 ...

  3. nginx--代理和负载均衡

    nginx代理 nginx的代理分为正向代理和反向代理 正向代理指的是,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原 ...

  4. 二、Mapper映射文件

    Mapper映射文件 mapper.xml映射文件主要是用来编写SQL语句的,以及一些结果集的映射关系的编写,还有就是缓存的一些配置等等. 在映射文件里面可以配置以下标签: 元素名称 描述 备注 se ...

  5. 聊聊业务系统中投递消息到mq的几种方式

    背景 电商中有这样的一个场景: 下单成功之后送积分的操作,我们使用mq来实现 下单成功之后,投递一条消息到mq,积分系统消费消息,给用户增加积分 我们主要讨论一下,下单及投递消息到mq的操作,如何实现 ...

  6. asp.net单一登录

    asp.net 使用 Application 限制单一登录 原理:用户登录后系统会分配一个与用户唯一对应的SessionID,将当前用户ID与其SessionID对应保存在Application中,一 ...

  7. 读Xamarin文档记录

    //怎样判断Wifi是否连接if (Connectivity.NetworkAccess == NetworkAccess.None) { ... } 连接改变的事件,判断事件改变后是否还处于连接状态 ...

  8. linux shell中$0,$?,$!等的特殊用法

    记录下linux shell下的特殊用法及参数的说明 变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值 ...

  9. JQuery Easy UI 1.7官网最新版附1.7API

    最新的Easy UI 1.7包括1.7的API已上传至百度云盘,有需要的,请自行下载!!! 使用示例: 注:红色加粗的必须引入!!! <!DOCTYPE html> <html> ...

  10. 跳转常规 -- 为什么不要使用404、500等http状态码作为业务代码响应

    不要使用HTTP状态码作为业务代码响应 HTTP状态码 是指浏览器访问网址,成功或异常时浏览器或服务器告知用户的代码数字,它指的是网络或服务器的状态,有着不同的含义. 参加MDN.Java Api,常 ...