参考:(转)非常完善的Log4net详细说明

log4net 按天与按小时记日志的配置

Log4net 中输出日志到文件,文件名根据日期生成

log4net按日志级别(debug,info,warn,error,fatal)生成日志目录,同时每小时生成一个日志文件

Log4Net组件的应用详解

配置文件:

<?xml version="1.0"?>
<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <root><!-- 根logger,所有其它logger都默认继承它-->
      <level value="WARN" /><!-- 只有在这个级别或之上的事件才会被记录-->
      <appender-ref ref="LogFileAppender" /><!--要引用的appender的名字-->
      <appender-ref ref="ConsoleAppender" />
    </root>

    <logger name="testApp.Logging">
      <level value="DEBUG"/>
    </logger>

    <!--定义日志的输出方式-->
    <!--写入回滚文件-->
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <!--日志文件路径,“/”与“/”作用相同,到达的目录相同,文件夹不存在则新建 -->
      <!--按文件大小方式输出时在这里指定文件名,并且当天的日志在下一天时在文件名后自动追加当天日期形成新文件。-->
      <!--按照日期形式输出时,直接连接元素DatePattern的value形成文件路径。此处使用这种方式 -->
      <!--param的名称,可以直接查对应的appender类的属性名即可,这里要查的就是RollingFileAppender类的属性 -->
      <param name="File" value="Log\\" />
      <!--是否追加到文件-->
      <param name="AppendToFile" value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--使用Unicode编码-->
      <Encoding value="UTF-8" />
      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
      <param name="MaxSizeRollBackups" value="-1" />
      <!--是否只写到一个文件中-->
      <param name="StaticLogFileName" value="false" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
      <!--此处按日期产生文件夹,文件名固定。注意&quot; 的位置-->
      <!--<param name="DatePattern" value="yyyy-MM-dd/&quot;ReflectionLayout.log&quot;"  />-->
      <!--这是按日期产生文件夹,并在文件名前也加上日期-->
      <!--<param name="DatePattern" value="yyyyMMdd/yyyyMMdd&quot;-TimerServer.log&quot;"  />-->
      <!--这是先按日期产生文件夹,再形成下一级固定的文件夹-->
      <!--<param name="DatePattern" value="yyyyMMdd/&quot;TimerServer/TimerServer.log&quot;"  />-->
      <!--每个文件的大小。只在混合方式与文件大小方式下使用。
          超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。
          可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
      <param name="DatePattern" value="yyyyMMdd'_log.log'" />
      <param name="maximumFileSize" value="500KB" />

      <!--<datePattern value="yyyyMMdd" />
      <param name="DatePattern" value="yyyyMMdd\\yyyyMMdd'_logtest.log'" />
      <RollingStyle value="Date" />-->

      <layout type="log4net.Layout.PatternLayout"><!--定义appender使用的输出格式-->
        <param name="Header" value="[Header] "/>
        <param name="Footer" value="[Footer] "/>
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter"><!--定义此app使用的过滤器-->
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="WARN" />
      </filter>
    </appender>

    <appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern"  value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>

  </log4net>

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

</configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Log4Net.console
{
    class Program
    {
        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();
            log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器
            log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log
            Console.ReadLine();
        }
    }
}

log4net 按时间输出日志的更多相关文章

  1. log4net不同logger输出日志

    4步曲 1.引用log4net.dll(nuget) 2.任意位置的命名空间头部加入下面的代码,web.config可修改为自己定义的.xml [assembly: log4net.Config.Xm ...

  2. log4net生成多个日志文件

    使用Log4Net日志组件时,经常会碰到这样一种场景,我想把错误的日志记录在Error.log文件中,而把操作的日志放在Operation.log文件中 经过几番尝试,终于实现了,在此把Log4Net ...

  3. (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法

    (六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...

  4. .net core 中使用Log4net输出日志到Mysql数据库中

    .net core 中使用Log4net输出日志到数据库中去 1.使用Nuget安装log4net 和 mysql.data 2.设置log4net 的配置文件 log4net.config 可以设置 ...

  5. C# log4net 不输出日志

    一个新项目,直接用了一些之前的代码,突然跟踪不到日志了.检查发现了原因,特在此记录. log4net的配置文件log4net_config.xml <?xml version="1.0 ...

  6. 【转】kettle 的内存设置及输出日志的时间类型

    本文转载自:http://blog.csdn.net/dqswuyundong/archive/2010/10/19/5952004.aspx 设置kettle的内存 REM ************ ...

  7. 记一次排查log4net 不输出日志的解决过程

    最近发现log4net 不输出日志了,重点排查几个地方,发现都没有问题. 1.[assembly: log4net.Config.XmlConfigurator(ConfigFile = " ...

  8. 解决Flink输出日志中时间比当前时间晚8个小时的问题

    Flink安装在CentOS7上,默认时间是UTC时间,查看Flink日志,发现输出时间比当前时间晚8个小时. 通过如下命令,调整成北京时间 cp /usr/share/zoneinfo/Asia/S ...

  9. python实现根据当前时间创建目录并输出日志

    举个例子:比如我们要实现根据当前时间的年月日来新建目录来存放每天的日志,当前时间作为日志文件名称:代码如下: #!/usr/bin/env python3 # _*_ coding: utf-8 _* ...

随机推荐

  1. for变量作用域(vc6与vs)

    for变量:写在for循环初始语句中的变量.如:for (int i=1,j=2; i<100; i++) vc6的for变量 int i 的作用域: void func(bool condit ...

  2. Centos中文乱码的解决方法

    1)说明: Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的默认编码为GBK. 2)查看支持 ...

  3. iOS 之 Cocoapods安装

    进入正题前,先来点前奏:了解cocoapods是某天看一个博客,那时才明白原来写项目不用一个个将三方库拷进项目里啊,惊讶的我是一塌糊涂的啊...(原谅我那时还没进入过正规的IT公司....好多你们自然 ...

  4. 如何使用的Ue4自带的SQLiteSupport

    在UE4.6版本加入的模块.可以让开发者使用SQLite数据库.SQlite是个轻量型的本地数据库. 我下面就来介绍一下如何使用这个模块. 第一步:下载SQLite源代码以及SQLite GUI管理工 ...

  5. Web设计师值得收藏的10个jQuery特效

    jQuery已经不是什么新鲜的事儿,以前总把它认为是非常难的东西,也就没有认真去了解他了.直到学完CSS的大部分内容,才开始接触这种"write less, do more" 的J ...

  6. 【DP】HDU 1087

    HDU 1078 Super Jumping! Jumping! Jumping! 题意: 有这么个游戏,从start到end(自己决定在哪停下来)连续跳圈,中间不能空一个圈不跳,圈里的数字必须比你上 ...

  7. fastclick与zepto的 tap事件关于在手机上click事件的300ms延迟的区别

    之前翻译过一篇关于fastclick的快速点击文章http://www.cnblogs.com/lilyimage/p/3568773.html,fastclick可以解决在手机上点击事件的300ms ...

  8. 封装ajax(二)闭包的形式

    (function(){ var $=(function(){ function create(){ if(window.XMLHttpRequest){ var xhr=new XMLHttpReq ...

  9. About_PHP_文件的上传

    在form表单中,我们上传文件用的是:<input type="file" name="fileUpload" />,当然,光是这样是不行的. 我们 ...

  10. Two Sum

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...