参考:(转)非常完善的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. 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】

    一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...

  2. CombineStream 与 Multipart Form

    最近开始研究http 特别是multipart 表单,想弄明白他是怎么work 的.在nodejs 里,可以使用form-data 来组合一个multipart 表单,然后使用http.request ...

  3. 第二十七篇:SOUI中控件属性查询方法

    SOUI项目的SVN根目录下有一个doc目录,下面有一份控件属性表.包含了大部分控件的大部分属性,不过也不一定完全准确.最保险的办法还是查源代码. SOUI对象包含控件及ISkinObj等从SObje ...

  4. Android ADB命令大全

    通过ADB命令查看wifi密码.MAC地址.设备信息.操作文件.查看文件.日志信息.卸载.启动和安装APK等   ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-s ...

  5. UML学习(三)-----序列图

    UML的模型中可分为两种,动态模型和静态模型.用例图.类图和对象图都是UML中的静态结构模型.而在UML系统动态模型的其中一种就是交互视图,它描述了执行系统功能的各个角色之间相互传递消息的顺序关系.序 ...

  6. 2016 Multi-University Training Contest 3

    5/11 2016 Multi-University Training Contest 3官方题解 2016年多校训练第三场 老年选手历险记 暴力 A Sqrt Bo(CYD) 题意:问进行多少次开根 ...

  7. [BZOJ4407]于神之怒加强版

    BZOJ挂了... 先把程序放上来,如果A了在写题解吧. #include<cstdio> #include<algorithm> #define N 5000010 #def ...

  8. ZeroMQ接口函数之 :zmq_ctx_destroy - 销毁一个ZMQ环境上下文

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_ctx_destroy zmq_ctx_destroy(3) ØMQ Manual - ØMQ/3.2.5 Nam ...

  9. How to parse HTML page data in Windows Phone

    1. Navigate to page WebBrowser control browser.Navigate(new Uri("http://www.xxxx.com")); 2 ...

  10. 【KMP算法】字符串匹配

    一.问题 给定两个字符串S(原串)和(模式串)T,找出T在S中出现的位置. 二.朴素算法 当S[i] != T[j]时,把T往后移一位,回溯S的位置并重新开始比较.    (1) 成功匹配的部分(AB ...