|zyciis| Log4.NET 现在生成每天一个日志OK了,那如何让他日志超过指定大小时拆分呢?他的MaxFileSize无效

zyciis154 2010-09-10 04:58:16

<log4net>
<root>
<debug value="false" />
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件路径-->
<!--相对路径,在项目的根目录下-->
<!--以最后一个路径为准-->
<param name="File" value="Upload\\Logs\\"/>
<param name="AppendToFile" value="true" />
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<param name="RollingStyle" value="Date" />
<!--当备份文件时,为文件名加的后缀-->
<!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug-->
<!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT-->
<param name="DatePattern" value="yyyyMMdd".log"" />
<!--置为true,当前最新日志文件名永远为file节中的名字-->
<param name="StaticLogFileName" value="false" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" /><!--这两个好像无效-->
<layout type="log4net.Layout.PatternLayout">
<!--输出样式-->
<param name="ConversionPattern" value="Data:%d%nthread:%t%nLevel:%p%nClass:%c%nFile:%F%nLine:%L%nMessage:%m%n%n"/>
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>

上面的配置,已经可以每天生成一个日志文件
但我想要是日志超过指定大小的时候进行拆分
所以配置了
MaxSizeRollBackups
MaxFileSize
这两个属性,但没有效果,我的日志20+MB了还是没有拆分
我想要的结果为
20100909.log
20100909_1.log //当上面的日志文件大于10M的时候进行折分
20100910.log


万分感谢
...全文
742 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoupin 2010-09-12
  • 打赏
  • 举报
回复
学习学习
zyciis154 2010-09-11
  • 打赏
  • 举报
回复
---------UP
zyciis154 2010-09-10
  • 打赏
  • 举报
回复
根据楼上的那个网面,我发现就
有区别
<param name="RollingStyle" value="Data" />
=》
<param name="RollingStyle" value="Composite" />
然后以下是我的设置
但还是没有拆分日志

<log4net>
<root>
<debug value="false" />
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件路径-->
<!--相对路径,在项目的根目录下-->
<!--以最后一个路径为准-->
<param name="File" value="Upload\\Logs\\"/>
<param name="AppendToFile" value="true" />
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<param name="RollingStyle" value="Composite" />
<!--当备份文件时,为文件名加的后缀-->
<!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug-->
<!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT-->
<param name="DatePattern" value="yyyyMMdd".log"" />
<!--置为true,当前最新日志文件名永远为file节中的名字-->
<param name="StaticLogFileName" value="false" />
<param name="MaxSizeRollBackups" value="-1" />
<param name="MaximumFileSize " value="1MB" />
<layout type="log4net.Layout.PatternLayout">
<!--输出样式-->
<param name="ConversionPattern" value="Data:%d%nthread:%t%nLevel:%p%nClass:%c%nFile:%F%nLine:%L%nMessage:%m%n%n"/>
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>

谢谢
wuyq11 2010-09-10
  • 打赏
  • 举报
回复
RollingLogFileAppender描述记录日志的方式,这代表日志将被写在一个文件,该文件当满的话会自动增加.
参考
yongyinmg 2010-09-10
  • 打赏
  • 举报
回复
在<appender></appender>里加
<maximumFileSize value="20MB" />
gongsun 2010-09-10
  • 打赏
  • 举报
回复
logger是负责日志的记录者
appender提供记录的介质
layout负责把记入的内容格式化
filter负责把内容进行筛选

可以说,整个过程就是一个日志流水线,每个成员负责其中的一个环节
logger发出记录信息,appender接到信息,根据内部的layout配置对记录信息格式化,根据filter决定此信息是否被过滤掉,最后,将其序列化



因此,logger的appender-ref就是定义说,LOGGER要找谁去将内容写入磁盘,流或其他介质,因此,十分重要吧
既然是ref引用,那肯定要定义这个被引用的appender对象了呀

每个appender都代表了一个输出介质
name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质
log4net支持的appender类型有十几种,最常用的有rollingFileAppender,AdoNetAppender,EventLogAppender,FileAppender,分别把日志记入文件,系统日志和数据库
除此之外,appender内的其他参数都用param标记,以key/value形式定义于其内
这里有个小提示,每一个appender,log4net并没有在文档中提出他们需要哪些参数,那么,我们怎么知道呢?
原来,这些param的名称,你可以直接查对应的appender类的属性名即可,例如,使用EventLogAppender时,通过查看类的属性,我们知道其有
LogName,ApplicationName属性,那么,意味着,你可以直接在这个APPENDER的param里加入以下内容:
<param name="LogName" value="Application" />
<param name="ApplicationName" value="log4netTest" />

定义了appender的NAME及TYPE属性,以及使用param为其指定参数后,一个appender就建立了,你可以使用他的名字在LOGGER的<appender-ref中去 引用它,那么,引用它的LOGGER在写入日志时,就是写到了APPENDER中定义的介质中去了
一个LOGGER可以引用多个APPENDER,其结果是,同一个日志,被同时记录到多个介质中去 ,便如,同时发邮件,写入系统日志,发送到远程主机.不过,虽然可以这样做,但是还是要小心,因为,会对性能有一定的影响,除非你需要,否则,不要乱用此功能


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hu8hong9/archive/2008/08/20/2800036.aspx
gongsun 2010-09-10
  • 打赏
  • 举报
回复
杯具,我记得好像有什么 日志名的参数。

不记得了,目前我们就是写在一个里面。

guyehanxinlei 2010-09-10
  • 打赏
  • 举报
回复
有时间帮你研究一下
内容概要:本文围绕“基于多面体聚合与闵可夫斯基和的电动汽车可调能力评估研究”展开,系统提出一种基于多面体建模与几何运算的聚合方法,用于量化大规模电动汽车集群的可调节能力。通过构建单车充电可行域的凸多面体表示,并利用闵可夫斯基和实现群体调控潜力的数学聚合,形成统一的等效灵活资源集合,从而精确刻画电动汽车集群在时间与功率维度上的整体调节边界。该方法结合Matlab代码实现,支持对聚合结果的可视化呈现与边界分析,为电力系统中的需求响应、虚拟电厂运营及分布式能源调度提供了高精度建模工具。研究强调科研应兼顾严谨逻辑与创新思维,倡导借助YALMIP等优化工具提升建模效率与求解可靠性。; 适合人群:具备电力系统分析、凸优化理论或运筹学背景,从事新能源并网、电动汽车调度、综合能源系统等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握多面体建模与闵可夫斯基和在电力系统灵活性聚合中的数学原理与实现方法;②学习利用Matlab完成电动汽车集群可调能力的建模、聚合与可视化分析;③应用于虚拟电厂资源聚合、需求响应潜力评估、配电网柔性负荷调控等实际场景的建模与优化决策。; 阅读建议:建议读者结合文中Matlab代码逐模块复现算法流程,重点理解多面体定义、约束处理及闵可夫斯基和的近似计算实现,同时参考提供的YALMIP工具包资源,深入掌握优化建模技巧,以全面提升对复杂系统聚合建模的能力。

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧