Log4net(三)——RollingFileAppender配置
RollingFileAppender配置
log4net的记录介质很多,这里只总结最常用的方式之一:RollingFileAppender。
1.日志文件名是以文件大小进行变换的
如果日志文件大小到100KB时,就会变换文件名为log.txt.1,log.txt.2,log.txt.3...,后边的数字越大,记录越早,一直到10为止,最新的文件名为一直log.txt。
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名--> <file value="F:/log.txt"/> <!--是否在文件中追加,设为false则去将以前的记录覆盖--> <appendToFile value="true"/> <!--按照文件的大小进行变换日志文件--> <rollingStyle value="Size"/> <!--最大变换数量--> <maxSizeRollBackups value="10"/> <!--最大文件大小--> <maximumFileSize value="100KB"/> <!--日志文件名是否为静态--> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender>
2.备份的日志文件名以时间命名
在F:/log/文件夹下,当前的日志名为:At_20180808-1247.log,上一分钟备份的名字At_20180808-1246.log 表示2018年8月8日,12点46分,每分钟备份一次
<appender name="滚动文件输出" type="log4net.Appender.RollingFileAppender"> <file value="F:/log/At_" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd-HHmm'.log'" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender>
3.时间和大小混合的方式
在F:/log/文件夹下,当前的日志时At_20180808-1252.log,这分钟内大小超过2kb时备份为At_20180808-1252.log.1;...,上一分钟日志名为: At_20180808-1251.log , 备份名字为:At_20180808-1251.log.1; ....
<appender name="滚动文件输出" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> <file value="F:/log/At_" /> <!--是否追加到文件--> <appendToFile value="true" /> <!--混合使用日期和文件大小变换日志文件名--> <rollingStyle value="Composite" /> <!--日期的格式--> <datePattern value="yyyyMMdd-HHmm'.log'" /> <!--最大变换数量--> <maxSizeRollBackups value="100" /> <!--最大文件大小--> <maximumFileSize value="2kB" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender>
更多内容参考官网:http://logging.apache.org/log4net/release/config-examples.html
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决