C# 每天有日志

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-

目前我的应用程序正在使用log4net记录错误,其web.config如下所示:


但是,问题是,每天日志都会转到
gateway.log

有人知道每天使用log4net创建不同日志文件的方法吗

理想情况下,我不想每晚都使用计划任务手动编辑
web.config

就像使用


编辑

这是每天滚动的整个log4net配置部分,与@lazyberezovsky回答的一样,只是添加了log4net和root以进行澄清

edit2
这将创建一个名为“gateway”的文件,并在一天结束时(2012-04-27)将其重命名为gateway_20120427.log,第二天(2012-04-28)将再次创建文件gateway_,最后将创建gateway_20120428.log


您应该与rollingStyle
Date
和datePattern
yyyyymmdd
一起使用(这将每天滚动)

配置示例:


更新:我认为更好的方法是将日期包含到文件名中。并且使用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