官方文档 http://logging.apache.org/log4net/release/config-examples.html

C# 项目中直接使用nuget,下载Apache的log4net依赖包。

在项目的App.config中添加配置

   <configSections>

     <section name="log4net"

     type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

   </configSections>

(Section一定要是configuration下的第一个子节点。)

下面是具体的Logger的配置,网上有很多参考,不赘述了。

 <log4net>

     <root>

       <level value="DEBUG" />

       <appender-ref ref="RollingFileAppender" />

       <level value="ALL" />

       <appender-ref ref="ConsoleAppender" />

     </root>

     <logger name="Test.Logging">

       <level value="ALL"/>

     </logger>

     <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >

       <!--配置在root注册的appender-ref具体属性-->  

       <!--如果填写的目录已经有同名的文件,会出现不生成日志的情况,在每次测试后,一定记得删除测试文件-->

       <param name="File" value="../../../../Log//"/>

       <param name="StaticLogFileName" value="false" />

       <param name="DatePattern" value="yyyy-MM-dd.LOG" />

       <param name="AppendToFile" value="true"/>

       <!--不加utf-8编码格式,中文字符将显示成乱码-->

       <param name="Encoding" value="unicodeFFFE" />

       <!--保留的文件数-->

       <param name= "MaxSizeRollBackups" value= "-1"/>

       <!--每个日志文件的最大大小-->

       <!--可用的单位:KB|MB|GB-->

       <maximumFileSize value="200MB"/>

       <param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" />

       <!--输出格式-->>

       <layout type="log4net.Layout.PatternLayout">

         <param name="Header" value=""/>

         <param name="Footer" value=""/>

         <param name="ConversionPattern" value="%d %-5p  - %m%n" />

       </layout>

       <filter type="log4net.Filter.LevelRangeFilter">

         <param name="LevelMin" value="WARN" />

         <param name="LevelMax" value="FATAL" />

         <!--只将这个范围内的日志保存进文件-->

         <!--ALL<DEBUG<INFO<WARN<ERROR<FATAL<None-->

       </filter>

     </appender>

     <appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >

       <layout type="log4net.Layout.PatternLayout">

         <param name="ConversionPattern"  value="%d [%t] %-5p - %m%n" />

       </layout>

     </appender>

   </log4net>

在AssemblyInfor.cs 中加入

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

如果你的日志需要非常的多的配置,可以新开一个配置文件,可以查看他人文档,我并没有进行测试。

在项目入口加入

log4net.Config.XmlConfigurator.Configure();

用于自动加载App.config中配置的日志器属性。

Var logger = log4net.LogManager.GetLogger("Test.Logging");

就可以开始用了。

通过配置不同的filter,可以将不同等级的日志输出到不同的文件中

使用Log4net 日志系统的更多相关文章

  1. log4net.redis+logstash+kibana+elasticsearch+redis 实现日志系统

    前端时间写了个随笔 log4net.NoSql +ElasticSearch 实现日志记录 ,因项目原因需要把日志根java平台的同事集成采用logstash+kibana+elasticsearch ...

  2. ELK+FileBeat+Log4Net搭建日志系统

    ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...

  3. .NET下日志系统的搭建——log4net+kafka+elk

    .NET下日志系统的搭建--log4net+kafka+elk 前言     我们公司的程序日志之前都是采用log4net记录文件日志的方式(有关log4net的简单使用可以看我另一篇博客),但是随着 ...

  4. 磨刀不误砍柴工——统一日志系统 Log4Net/ExceptionLess

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫必须注明原文地址:www.cnblogs.com/tdws . 一.   写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等 ...

  5. 【5】基于Log4Net的日志系统

    阅读目录 日志系统应具备的特性  Log4Net 配置文件:log4net.config 初始化 输出信息 对Log4Net的封装 log4net.config复杂配置   不管是Web应用程序还是W ...

  6. 统一日志系统 Log4Net/ExceptionLess

    一.   写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等日志量请日志单库. 希望爱技术的你不要错过exceptionless和ELK 第四节开始简单配置大牛们推荐的了Ex ...

  7. 2.1 自定义日志系统-log4net

    说明 Prism中如果把日志级别设定为DEBUG,会显示框架加载信息 Prism默认是没有日志系统的 步骤 下载log4net包 Install-Package log4net; 在app.confi ...

  8. [Asp.net 5] Logging-其他日志系统的实现

    Microsoft.Framework.Logging.NLog 使用Nlog扩展日志系统:按照我们上节说的,对于扩展的日志系统都要实现俩个接口ILogger.ILoggerProvider.所以在当 ...

  9. 如何让Log4net日志文件按每月归成一个文件夹,StaticLogFileName参数的用法

    想要让Log4net日志(以下称日志)按每月自动归类为一个文件夹,为此,学习和修改了log4net.config文件.查了资料,重点是以下这些参数:      <param name=" ...

随机推荐

  1. 测试是否支持辨别tex公式

    1.首先启动博客园公式编写支持(latex) 2.编写公式 3.结果 $a+b=5$ $c+d=7$

  2. U3D外包团队:五款IDE推荐!

    1. Jetbrains RubyMine RubyMine是由捷克Jetbrains公司开发的,目前可提供使用的版本有RubyMine 5.4.而且RubyMine 5.4同时也为Rails 4的发 ...

  3. Java GC机制

    GC机制的基本算法是:分代收集,这个不用赘述.下面阐述每个分代的收集方法. 年轻代: 事实上,在上一节,已经介绍了新生代的主要垃圾回收方法,在新生代中,使用“停止-复制”算法进行清理,将新生代内存分为 ...

  4. ng工程升级cli版本

    全局更新ng 然后在工程里 ng update @angular/cli @angular/core

  5. Yahoo Programming Contest 2019 F - Pass

    F - Pass 思路: dp[i][j] 表示到第 i 个球为止放了 j 个蓝球的方案数 第 i 个球来自的位置的最右边是min(i, n) 转移方程看代码 代码: #pragma GCC opti ...

  6. 关于Djanggo的环境变量

    templates是Django指定的T目录,pycharm下templates的图标会变亮,static则可以改动.下面STATIC_URL可以指定,STATICFILES_DIRS则指定了temp ...

  7. React文档(十一)提升state

    经常有些组件需要映射同一个改变的数据.我们建议将共用的state提升至最近的同一个祖先元素.我们来看看这是怎样运作的. 在这一节中,我们会创建一个温度计算器来计算提供的水温是否足够沸腾. 我们先创建一 ...

  8. 解决安卓UI刷新卡屏,只显示最后一处刷新的问题

    ---恢复内容开始--- 错误1 安卓的机制决定了只有UI线程(也就是主线程)才能更新UI界面 否则会导致UI界面混乱的问题 这就说明了在new Thread中直接showImage是会报“出现非主线 ...

  9. html5(八) IndexedDB

    IndexedDB 是一个数据库系统,它在用户的计算机上存储索引信息. IndexedDB与传统的数据库不同.在IndexedDB中,数据库中的信息以对象的形式存储在对象库表中.对象库没有特定的结构, ...

  10. Python3+SQLAlchemy+Sqlite3实现ORM教程

    一.安装 Sqlite3是Python3标准库不需要另外安装,只需要安装SQLAlchemy即可.本文sqlalchemy版本为1.2.12 pip install sqlalchemy 二.ORM操 ...