C# 每天有日志
目前我的应用程序正在使用log4net记录错误,其web.config如下所示:C# 每天有日志,c#,logging,error-handling,log4net,C#,Logging,Error Handling,Log4net,目前我的应用程序正在使用log4net记录错误,其web.config如下所示: 但是,问题是,每天日志都会转到gateway.log 有人知道每天使用log4net创建不同日志文件的方法吗 理想情况下,我不想每晚都使用计划任务手动编辑web.config。就像使用 编辑 这是每天滚动的整个log4net配置部分,与@lazyberezovsky回答的一样,只是添加了log4net和root以进行澄清 edit2 这将创建一个名为“gateway”的文件,并在一天结束时(2012-04-
但是,问题是,每天日志都会转到gateway.log
有人知道每天使用log4net创建不同日志文件的方法吗
理想情况下,我不想每晚都使用计划任务手动编辑web.config
。就像使用
编辑
这是每天滚动的整个log4net配置部分,与@lazyberezovsky回答的一样,只是添加了log4net和root以进行澄清
edit2
这将创建一个名为“gateway”的文件,并在一天结束时(2012-04-27)将其重命名为gateway_20120427.log,第二天(2012-04-28)将再次创建文件gateway_,最后将创建gateway_20120428.log
您应该与rollingStyleDate
和datePatternyyyyymmdd
一起使用(这将每天滚动)
配置示例:
更新:我认为更好的方法是将日期包含到文件名中。并且使用datePattern值仅显示创建新日志文件的时间
在这种情况下,您的所有文件的名称都类似于gateway\u 20120427.log
此设置在滚动日志后保持文件的扩展名不变
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="_yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
<preserveLogFileNameExtension value="true" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
为了澄清我是否需要c:/paypal/logs/gateway_20120427.log,例如,我应该如何设置配置?这就是我们停止使用log4net的原因。太复杂了,配置总是很糟糕。它就像WCF和ZeroMQ。开始使用NLog。更清晰更简单。@swade1987别忘了添加:
,否则您的日志文件名可能不会更改@swade1987此配置将创建gateway.log
文件。当您日前尝试写入日志时,当前的gateway.log
将重命名为gateway.log20120427
,并将创建新的gateway.log
文件。请参阅关于更改文件名。顺便说一句,
将起作用。因此,使用您今天提供的URL,日志文件将是27.04.2012.log,对吗?@swade1987实际上RollingFileAppender只是将您在datePattern中描述的内容添加到文件名中。因此,如果您想要gateway\u 20120427.log
,那么您应该有文件名gateway
和日期模式\u yyyyMMdd.log'
。当前日志文件将不带扩展名。第一天可以,但当这一天结束时,文件变成gateway_yyyyymmdd.logyyyyymmdd。对和日志文件的更改将具有正确的格式,但当前日期除外。我最终将答案和几条注释结合起来,以获得正确的结果并看起来合理的内容(例如,名称中带有相关名称的标记中的部分):创建文件名(包括当前日期),如MyApp\u 2017-05-30.log
。