一、

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

<param name="File" value="Log/log.config" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="_yyyy-MM-dd.'config'" />
<param name="StaticLogFileName" value="true" />

众说纷纭,许多说得让人看后似懂非懂,经过说起来都是泪的实验,终于有了明确的结论,整理发表出来避免后人走弯路。
1.StaticLogFileName的值如果为true,则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。如果为false,则文件名取File+DatePattern。
2.File的值是静态的如果写“yyyy-MM”就是“yyyy-MM”而不会转成当前的年份和月份,而且斜扛“/”与反斜扛“\”效果相同,连续2扛也与1扛相同。
3.DatePattern的值是动态的“yyyy”代表4位年份,详细参考网上的众多资料(这个不难得到)。如果想表达静态的字符(如“y”)有2种办法,1是使用转义字符“\”,即“\y”,2是使用一对单引号限定,即“'y'”。如上面的value="_yyyy-MM-dd.'config'",就是因为fig有特殊含义,所以把“config”用单引号包含起来了。
4.修改了(网站上的)log4net.config文件,使它生效的方法是重启网站(我没有试着去操作应用程序池)。实测重启网站有约10%没有使它生效,但如果是先停止网站再启动,则100%生效。
以上4点最关键是第1点,也是众多资料所没有说清楚的(本人的汉字理解能力有问题?)。最终符合我要求的配置如下:

<param name="File" value="Log\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy-MM\\yyyy-MM-dd.'log'" />
<param name="StaticLogFileName" value="false" />

以上是基于我自己做的实验而得出的结论,难免不够系统和全面,限于本人水平,难免有错误。如有发现错漏,欢迎指正。

二、

log4net配置文件设置  

2011-11-16 13:15:41|  分类: Notes|举报|字号 订阅

log4net的使用,主要在配置文件的设置上,明白了如何配置就基本能够封装自己要用的Log公共类了,以下是Log4net的一个配置示例及常用参数讲解。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--Log设定-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0" />
</configSections>
<log4net>
<!--日志记录器logger,可以有多个-->
<logger name="fileLog">
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</logger>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%d][%-4p] %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
<!--log存放的路径-->
<param name="File" value="log_" />
<param name="AppendToFile" value="true" />
<param name="StaticLogFileName" value="false"/>
<param name="MaximumFileSize" value="10MB"/>
<param name="Threshold" value="ALL"></param>
<param name="DatePattern" value="yyyyMM&quot;\\log_&quot;yyyyMMdd&quot;.log&quot;"/>
<param name="RollingStyle" value="Composite"/>
<param name="CountDirection" value="1"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%d][%-4p] %m%n" />
</layout>
</appender>
</log4net>
</configuration>
RollingLogFileAppender(文件记录)参数:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

参数名

描述

filter

可以有0或多个filter,具体配置在下面的Filter项说明。

layout

可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明

param

Param有多个可以进行配置,常用的:

名称

描述

File

文件路径,如果RollingStyle为CompositeDate,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录

RollingStyle

创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite

DatePattern

当RollingStyle为CompositeDate这里设置文件名格式

StaticLogFileName

True/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。

MaximumFileSize

当RollingStyle为CompositeSize这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)

CountDirection

默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。

MaxSizeRollBackups

备份日志数目,默认为0。在CountDirection为负数时有效。

Threshold

起始日志级别,取值为下面文章讨论的预定义日志级别。低于此级别的日志不会被记录。

AppendToFile

True/false,默认为true。当文件存在时,是否在原文件上追加内容。

例如:

<param name="File"
value="UpLoads\\Log\\"/>

<param
name="MaximumFileSize" value="3000"/>

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

<param
name="Threshold" value="Debug"></param>

<param
name="DatePattern"
value="yyyyMM&quot;\\#{ServerHostName}-&quot;yyyyMMdd&quot;.log&quot;"/>

<param
name="RollingStyle" value="Date"/>

三、
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net" />
</configSections> <log4net>
<!--配置日志的级别,低于此级别的就不写到日志里面去
OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL
-->
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root> <logger name="WebLogger">
<level value="ERROR" />
</logger> <!--输出到文件-->
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="Log/" />
<param name="AppendToFile" value="true" />
<!-- 切割最多文件数 -1表示不限制产生日志文件数-->
<param name="MaxSizeRollBackups" value="-1"/>
<!-- 每个文件的大小限制 -->
<param name="MaximumFileSize" value="10MB"/>
<!-- RollingStyle Composite 综合 Size 按大小 Date 按时间 -->
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="Header" value=" ----------------------application startup-------------------------- " />
<param name="Footer" value=" ----------------------application shutdown-------------------------- " />
<param name="ConversionPattern" value="%d [%t] %-5p %c - (%line) %m%n" />
</layout> <filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ALL" />
<param name="LevelMax" value="OFF" />
</filter>
</appender> <!--输出控制台-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - (%line) %m%n" />
</layout>
</appender> </log4net>
</configuration>

log记录日志使用说明的更多相关文章

  1. Log Explorer使用说明

    一.介绍 Log Explorer主要用于对MSSQLServer的事物分析和数据恢复.你可以浏览日志.导出数据.恢复被修改或者删除的数据(包括执行过update,delete,drop和trunca ...

  2. 转:Log Explorer使用说明恢复被误删除的数据

    一.介绍 Log Explorer主要用于对MSSQLServer的事物分析和数据恢复.你可以浏览日志.导出数据.恢复被修改或者删除的数据(包括执行过update,delete,drop和trunca ...

  3. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

  4. Log Explorer 使用说明(原创)

    关于Log Explorer (我抄的) 介绍Log Explorer主要用于对MSSQLServer的事物分析和数据恢复.你可以浏览日志.导出数据.恢复被修改或者删除的数据(包括执行过update, ...

  5. [转] C#实现自动化Log日志

    qing2005原文地址 C#实现自动化Log日志 在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志 ...

  6. 远程log调试工具console.re

    http://console.re/ https://github.com/kurdin/console-remote 前文提到在手机微信上调试代码很痛苦,看不到日志.为了看到日志,得把日志发到服务器 ...

  7. Log Explorer 恢复误删除、更新数据

    一.介绍 详细参考:https://blog.csdn.net/jinjazz/article/details/2459692 转自:https://blog.csdn.net/hch27151099 ...

  8. zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  9. linux服务器开发一 基础

    注:本文仅限交流使用,请务用于商业用途,否则后果自负! Linux 1.Linux介绍 Linux是类Unix计算机操作系统的统称. Linux操作系统的内核的名字也是“Linux”. Linux这个 ...

随机推荐

  1. qthread线程

    一般调用quit()函数之后可以紧接着调用wait()函数确保线程退出.sleep()等让线程休眠的函数不需要调用,因为Qt中线程是事件驱动机制.但是如果是继承的QTHread类,在run()函数中使 ...

  2. ASP.NET Core 基础知识(五) 依赖关系注入

    参考https://www.cnblogs.com/jesse2013/p/di-in-aspnetcore.html 和 https://www.cnblogs.com/artech/p/net-c ...

  3. pyhive

    from pyhive import hiveimport pandas as pdimport numpy as npclass myhive():    def __init__(self,hos ...

  4. input输入框实现联想关键词功能

    实现原理很简单,代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  5. 第一次接触oracle

    登录 SQLPLUS cmd sqlplus [用户名]/[密码][@数据库] [参数] sqlplus sys/orcl as sysdba -- 登录 sys 用户,必须指定 sysdba 或 s ...

  6. Flask【第2篇】:Flask基础

    Flask基础 知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2.实例化Flask对象,里面是有参数的 app = Flask(__name ...

  7. 前端之JavaScript:JS简单介绍

    JavaScript(JS)之简单介绍 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Scr ...

  8. 微信小程序 背景音频播放遇到的深坑

    1.微信前台(聊天页)暂停后回到小程序,再点击播放,播放信息消失,无法续播 ios可以监听到 (onStop已经停止)事件, 安卓无法监听到,只能监听到普通的暂停事件. 2.

  9. Chrome设置--disable-web-security解决跨域问题

    这里介绍的是--disable-web-security参数.这个参数可以降低chrome浏览器的安全性,禁用同源策略,利于开发人员本地调试. (1)新建一个chrome快捷方式,右键“属性”,“快捷 ...

  10. Python---协程---重写多线程

    一. # 用协程的方式,修改播放电影和音乐的练习题 # 用协程的方式完成播放 movie_list = ["斗破.mp4", "复仇者联盟.avi", &quo ...