gpt4 book ai didi

Sitecore 自定义日志,如何每天只写一个文件?

转载 作者:行者123 更新时间:2023-12-04 03:15:32 24 4
gpt4 key购买 nike

我们已经实现了自定义日志并写入自定义日志文件。
问题是,日志每天创建几次,文件名如下:

MyCustom.log.20161208.165109
MyCustom.log.20161208.165845
MyCustom.log.20161208.175134
MyCustom.log.20161208.184432

定义是这样的:
    <appender name="MyCustomLogAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
<file value="$(dataFolder)/logs/MyCustom.log.{date}.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
</layout>
<encoding value="utf-8" />
</appender>

谁能告诉我我需要配置什么才能每天只接收一个文件?或者换句话说,什么时候创建一个新文件?

最佳答案

Sitecore 使用 log4net 作为其底层日志记录框架,这意味着您可以使用任何标准 appender。虽然 Sitecore 添加了自定义 SitecoreLogFileAppender appender,你可以简单地使用 RollingFileAppender并根据日期滚动日志文件。

您可以在 log4net config examples section 中找到 sample 的文档。

特别是对于 Sitecore,将附加程序更改为以下内容:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
<file value="$(dataFolder)/logs/log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="30" />
<datePattern value=".yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
</layout>
<encoding value="utf-8" />
</appender>

关于上述配置变化的一些细节:
  • file : 要登录的文件的名称。请注意,我们使用以下设置对此进行了补充。
  • rollingStyle :滚动每个文件的格式。
  • maxSizeRollBackups : 上面这个已经设置为30了,如果你愿意可以去掉这个节点。此值可确保 log4net 自动删除超过 30 天的任何日志。
  • datePattern :这将设置滚动文件的日期格式。请注意,文件后缀包含在单引号中。看到这个 previous answer更多细节。
  • staticLogFileName : 如果设置为 true 则最新的日志文件将始终具有相同的名称,但请注意,由于您的 file value 没有文件后缀。

  • 现在文件将以 log.yyyMMdd.txt 格式生成在与以前相同的日志文件夹中,并且不受每次应用程序重新启动/应用程序池回收时生成不同文件的影响。

    关于Sitecore 自定义日志,如何每天只写一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100002/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com