配置效果图:

配置代码:

 <?xml version="1.0" encoding="utf-8" ?>
<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="%newline%newline【日志时间】: %d 【线程ID】: %thread %newline【日志级别】: %-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline" />
</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="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline" />
</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="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline" />
</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="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m %newline" />
</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="%newline%newline【日志时间】:%d 【线程ID】:%thread %newline【日志级别】:%-5p %newline【日志对象】:%logger %newline【日志内容】:%m%newline" />
</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>

log4net.config 配置代码

配置总结:

  log4net主要有Appenders(输出媒介)、Filters(过滤器)、Layouts(布局)、Loggers(日志类别)、Object Renders(渲染器)组成。

  <root>为根节点

  <logger>主要负责日志的记录,它记录的方式有多种,可以是以文件、数据库、控制台、邮件等多处方式;

继承<root>,logger输出日志时,<root>也输出。示例

   <logger name="loginfo">
         <level value="INFO" />
         <appender-ref ref="InfoAppender" />
    </logger>

  Logger提供了多种方式来记录一个日志消息,也可以有多个Logger同时存在。每个实例化的Logger对象对被log4net作为命名实体(Named Entity)来维护。log4net使用继承体系,也就是说假如存在两个Logger,名字分别为a.b.c和a.b。那么a.b就是a.b.c的祖先。每个Logger都继承了它祖先的属性

  <level>为日志等级;由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF;比如定义级别为<level value="INFO"/>,则INFO级别向下的级别,比如DEBUG日志将不会被记录;如果没有定义LEVEL的值,则缺省为DEBUG

  <appender>为输出媒介,常用有AdoNetAppender(输出到数据库),AspNetTraceAppender(输出到ASP.NET日志),ConsoleAppender(输出到console),BufferingForwardingAppender(按信息条数输出到console),ColoredConsoleAppender/ManagedColoredConsoleAppender(根据设定颜色输出到console),EventLogAppender(输出到操作系统应用程序日志),FileAppender(输出到文件),RollingFileAppender(有回收的输出到文件),SmtpAppender(输出到邮件),RemotingAppender(远程输出)

   <filter>过滤器,用来过滤输出源输出的内容,其中包括:

  ·DenyAllFilter 阻止所有的日志事件被记录

  ·LevelMatchFilter 只有指定等级的日志事件才被记录

  ·LevelRangeFilter 日志等级在指定范围内的事件才被记录

·  LoggerMatchFilter Logger名称匹配,才记录

  ·PropertyFilter 消息匹配指定的属性值时才被记录

·  StringMathFilter 消息匹配指定的字符串才被记录

示例:

  <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
          <filter type="log4net.Filter.LevelMatchFilter">
              <levelToMatch value="INFO" />
          </filter>
          <filter type="log4net.Filter.DenyAllFilter" />

   </appender>

log4net layout ConversionPattern常用符号说明

  %m,%message:输出的日志消息;

   %M,%method:输出调用日志输出的方法名;

   %n,%newline:输出一个回车换行符;

   %d,%date:输出当前语句运行的时刻,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出2015-03-10 14:53:28;也可以%d{ISO8601}输出2015-03-10 14:51:12,220, %d{DATE}输出‘10 Mar 2015 14:51:51,318’, %d{ABSOLUTE}输出14:54:07,943,%d{HH:mm:ss,fff}, %d{dd MM yyyy HH:mm:ss,fff},yyyy年份,MM月份,dd日期,HH小时小时24制,hh小时12小时制,mm分钟,ss秒,fff毫秒(f为秒的精确位数,几个f代表精确到小数点后几位)

  %r(runtime),%timestamp:输出程序从运行到执行到当前语句时消耗的毫秒数;

  %t,%thread:当前语句所在的线程ID ;

  %p(priority),%level: 输出日志的当前日志级别,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG;

   %C(class),%class,%type:输出当前日志对象的名称,%C{1}输出日志调用最后第一个类;

   %c(category), %logger:输出日志信息所属目录类型logger name

   %L,%line:输出语句所在的行号;

  %l,%location:输出%F%L%C%M

  %F,%file: 输出语句所在的文件名;

  %a,%appdomain:输出引发日志事件的应用程序域的友好名称

   %x,%ndc : 输出(nested diagnostic context)ndc上下文内容

   %X,%mdc:输出(mapped diagnostic context)mdc上下文内容

  %P,%property: 输出事件的特殊属性。例如: %property{user} 输出user属性

   %[-|.]数字: %10,表示最小长度为10,如果不够,则用空格左侧填充;%-10,表示最小长度为10,如果不够,则用空格右侧填充;%.10,表示最大长度为10;可以与%m等其他格式组合使用,示例%10m,%-10m,%10.10m,%-10.10m

   %%:输出%

解决占用问题

  最小锁定模式,以允许多个进程可以写入同一个文件 例:

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

官方地址:http://logging.apache.org/log4net/

配置示例:http://logging.apache.org/log4net/release/config-examples.html

Log4Net 配置日志按日期和日志级别分类写入的更多相关文章

  1. python----日志模块loggin的使用,按日志级别分类写入文件

    1.日志的级别 日志一共分为5个等级,从低到高分别是: 级别 说明 DEBUG 输出详细的运行情况,主要用于调试. INFO 确认一切按预期运行,一般用于输出重要运行情况. WARNING 系统运行时 ...

  2. log4net 既要按日期分割日志文件,又要按文件大小分割。

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

  3. 一、Log4Net配置

    Core的配置 一.创建core包含控制和视图的项目以及Log4Net引用 二.创建Log4Net配置文件 右击项目->添加文件   Log4Net.config 2 复制以下代码 以下配置可做 ...

  4. Asp.Net Core Log4Net 配置分多个文件记录日志(不同日志级别)

    本文所有配置都是在core3.1环境下. 首先看看最终的效果. 请求监控:对每次请求的相关信息做一个记录. 全局异常:我不想我的错误信息,跟其他的信息混合在一起,查看的时候不大方便. 应用日志:这个主 ...

  5. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  6. .Net Log4Net配置多文件日志记录

    其他配置详情在网上都可以找到,但是很多看着都晕,本人就记录一下如何使用: 1.按不同级别(官方说明)可记录的日志级别有: Info.Warn.Error.Debug 2.可以按着四个配置四个输出日志路 ...

  7. log4j配置参数详解——按日志文件大小、日期切分日志文件

    项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式.下面就总结一下log4j常用的配置参数以及切分日志的不同方式. ...

  8. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  9. c# 文件日志处理 需要log4net配置

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

随机推荐

  1. Python random() 生成随机数

    random() 函数中常见的函数如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import random print( random.randint(1 ...

  2. 机器学习读书笔记(五)AdaBoost

    一.Boosting算法 .Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合为一个分类器的方法,即boostrap ...

  3. Codeforces 758C:Unfair Poll(思维+模拟)

    http://codeforces.com/problemset/problem/758/C 题意:教室里有n列m排,老师上课点名从第一列第一排开始往后点,直到点到第一列第m排,就从第二列第一排开始点 ...

  4. scrapy 发post请求

    可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求. 如果希望程序执行一开始就发送POST请求,可以重写Spider类的s ...

  5. 【深入浅出-JVM】(34):CMS 回收器

    概念 Concurrent Mark Sweep 并发标记清除(多线程并且用的标记清除算法),会造成大量的内存碎片,离散的可用空间无法分配较大的对象 流程 参数 -XX:-CMSPrecleaning ...

  6. C++学习书籍推荐《C++编程思想第二版第二卷》下载

    百度云及其他网盘下载地址:点我 编辑推荐 “经典原版书库”是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广 ...

  7. Windows 下配置 Logstash 为后台服务

    到目前为止,logstash 没有给出官方的,在 windows 系统中作为后台服务运行的方式.本文将介绍如何使用第三方工具 nssm 让 logstash 作为后台服务运行在 windows 中.说 ...

  8. Bzoj 3165 [Heoi2013]Segment题解

    3165: [Heoi2013]Segment Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 668  Solved: 276[Submit][Sta ...

  9. Python解释器安装教程以及环境变量配置 以及 pycharm的安装与激活

    计算机的组成 主板:人的骨架,用于拓展设备 CPU:人的大脑,用于计算和逻辑处理 硬盘:存储数据(永久储存),比如电脑上的 C盘,D盘 内存:临时记忆(断电即消失) 操作系统:XP win7 win1 ...

  10. Python 爬虫:豆瓣电影Top250,包括电影导演、类型、年份、主演

    结果输出到文本文件中. import codecs import requests from bs4 import BeautifulSoup headers={'User-Agent': 'Mozi ...