log4net如何只保留5天之内的数据? 我现在控制是20M大小后就在创建建一个日志,但是随着文件越来越多,占用了大量资源,我想知道怎样配置只保留5天内的数据呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢回复,不过系统日志需求里是不允许的,还有其他方法吗,最好针对LOG4NET配置 rollingStyle 取Date,即按日期来maxSizeRollBackups 取5,即5个文件datePattern _yyyy-MM-dd.LOG 即日期格式是日期,也就是说每日备份一个所以总体的说法是,每日生成一个日志文件,且只保留5个,也就能实现你的目的了。希望可以帮到你。<?xml version="1.0" encoding="utf-8"?><!-- 注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的 “网站”->“Asp.Net 配置”选项。 设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 \Windows\Microsoft.Net\Framework\v2.x\Config 中--><configuration> <log4net> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <logger name="MyLogger"> <!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL" /> <appender-ref ref="FileAppender"></appender-ref> </logger> <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> <!--绝对路径--> <file value="C:\\LHNP.LOG"></file> <!--相对路径,在项目的根目录下--> <!--以最后一个路径为准,所以上面的绝对路径下不会写日志--> <file value="./Log/LHNP.LOG"></file> <!--防止多线程时不能写Log,官方说线程非安全--> <!--实际使用时,本地测试正常,部署后有不能写日志的情况--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <appendToFile value="true" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="Date" /> <!--日志最大个数,都是最新的--> <!--rollingStyle节点为Date时,该节点不起作用--> <!--rollingStyle节点为Size时,只能有value个日志--> <!--rollingStyle节点为Composite时,每天有value个日志--> <maxSizeRollBackups value="5" /> <!--当备份文件时,为文件名加的后缀--> <!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug--> <!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT yyyy-MM-dd --> <datePattern value="_yyyy-MM-dd.LOG" /> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="5000KB" /> <!--置为true,当前最新日志文件名永远为file节中的名字--> <staticLogFileName value="true" /> <!--输出级别在INFO和ERROR之间的日志--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="ERROR" /> </filter> <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出--> <filter type="log4net.Filter.LevelMatchFilter"> <param name="LevelToMatch" value="WARN" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> <layout type="log4net.Layout.PatternLayout"> <!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />--> <conversionPattern value="%date %-5level - %message%newline" /> </layout> </appender> </log4net> <!--==================================layout节点的配置说明==================================--> <!-- Made By AX --> <!-- %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 --> <!-- %n(new line):换行 --> <!-- %d(datetime):输出当前语句运行的时刻 --> <!-- %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 --> <!-- %t(thread id):当前语句所在的线程ID --> <!-- %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 --> <!-- %c(class):当前日志对象的名称,例如: --> <!-- 模式字符串为:%-10c -%m%n --> <!-- 代码为: --> <!-- ILog log=LogManager.GetLogger(“Exam.Log”); --> <!-- log.Debug(“Hello”); --> <!-- 则输出为下面的形式: --> <!-- Exam.Log - Hello --> <!-- %L:输出语句所在的行号 --> <!-- %F:输出语句所在的文件名 --> <!-- %-数字:表示该项的最小长度,如果不够,则用空格填充 --> <!-- 例如,转换模式为%r [%t]%-5p %c - %m%n 的 PatternLayout 将生成类似于以下内容的输出: --> <!-- 176 [main] INFO org.foo.Bar - Located nearest gas station. --> <!-- --> <!--========================================================================================--></configuration> RollingLogFileAppender描述记录日志的方式,这代表日志将被写在一个文件,该文件当满的话会自动增加. 添加时删除以前记录 请教:如何用SendMessage向指定程序发送快捷键F2? winform 中,如何把鼠标放上去,使图片有放大的效果 c# 一个简单算法,却得不到想要的结果 c# graphic 去掉矩形填充色 怎样给Repeater控件加上行号 求助用CDO发邮件的问题 C#中调用Windows API的参数问题 关于.NET线程暂停 求.Net反编译器 是谁搞过我的机器,是谁动了我的奶酪???? c#里面如何更新mdb数据库的是否字段? 如何获取想要Copy的文件的路径和文件名呢
maxSizeRollBackups 取5,即5个文件
datePattern _yyyy-MM-dd.LOG 即日期格式是日期,也就是说每日备份一个所以总体的说法是,每日生成一个日志文件,且只保留5个,也就能实现你的目的了。希望可以帮到你。
<?xml version="1.0" encoding="utf-8"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<log4net>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<logger name="MyLogger">
<!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--如果没有定义LEVEL的值,则缺省为DEBUG-->
<level value="ALL" />
<appender-ref ref="FileAppender"></appender-ref>
</logger>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<!--绝对路径-->
<file value="C:\\LHNP.LOG"></file>
<!--相对路径,在项目的根目录下-->
<!--以最后一个路径为准,所以上面的绝对路径下不会写日志-->
<file value="./Log/LHNP.LOG"></file>
<!--防止多线程时不能写Log,官方说线程非安全-->
<!--实际使用时,本地测试正常,部署后有不能写日志的情况-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<rollingStyle value="Date" />
<!--日志最大个数,都是最新的-->
<!--rollingStyle节点为Date时,该节点不起作用-->
<!--rollingStyle节点为Size时,只能有value个日志-->
<!--rollingStyle节点为Composite时,每天有value个日志-->
<maxSizeRollBackups value="5" />
<!--当备份文件时,为文件名加的后缀-->
<!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug-->
<!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT yyyy-MM-dd -->
<datePattern value="_yyyy-MM-dd.LOG" />
<!--可用的单位:KB|MB|GB-->
<!--不要使用小数,否则会一直写入当前日志-->
<maximumFileSize value="5000KB" />
<!--置为true,当前最新日志文件名永远为file节中的名字-->
<staticLogFileName value="true" />
<!--输出级别在INFO和ERROR之间的日志-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="ERROR" />
</filter>
<!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="WARN" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" /> <layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />-->
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
</log4net>
<!--==================================layout节点的配置说明==================================-->
<!-- Made By AX -->
<!-- %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 -->
<!-- %n(new line):换行 -->
<!-- %d(datetime):输出当前语句运行的时刻 -->
<!-- %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 -->
<!-- %t(thread id):当前语句所在的线程ID -->
<!-- %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 -->
<!-- %c(class):当前日志对象的名称,例如: -->
<!-- 模式字符串为:%-10c -%m%n -->
<!-- 代码为: -->
<!-- ILog log=LogManager.GetLogger(“Exam.Log”); -->
<!-- log.Debug(“Hello”); -->
<!-- 则输出为下面的形式: -->
<!-- Exam.Log - Hello -->
<!-- %L:输出语句所在的行号 -->
<!-- %F:输出语句所在的文件名 -->
<!-- %-数字:表示该项的最小长度,如果不够,则用空格填充 -->
<!-- 例如,转换模式为%r [%t]%-5p %c - %m%n 的 PatternLayout 将生成类似于以下内容的输出: -->
<!-- 176 [main] INFO org.foo.Bar - Located nearest gas station. -->
<!-- -->
<!--========================================================================================--></configuration>
添加时删除以前记录