【问题标题】:NLog - Cleaning up log files that have dynamic file namesNLog - 清理具有动态文件名的日志文件
【发布时间】:2013-05-29 06:24:27
【问题描述】:

我有一个将通过排队系统接收消息的应用程序,我想将每条消息记录到自己的文件中,文件名是消息 ID。我想出了如何使用文件名中的事件上下文来完成此操作。

虽然 maxArchiveFiles 设置没有任何影响,可能是因为我没有归档任何文件。使用此配置有什么方法可以利用 NLog 按日期或计数限制文件数量?

 <target name="testfile" xsi:type="File"
            layout="${message}"
            fileName="c:\SupportLogs\${event-context:item=MessageId}.txt"
            maxArchiveFiles="50"
            keepFileOpen="false"
            encoding="iso-8859-2" />


    NLog.Logger oLogger = NLog.LogManager.GetLogger("Test");
    NLog.LogEventInfo oEvent = new NLog.LogEventInfo(NLog.LogLevel.Debug, "", "My Message");
    oEvent.Properties["MessageId"] = Guid.NewGuid().ToString();
    oLogger.Log(oEvent);

【问题讨论】:

    标签: c# nlog


    【解决方案1】:

    不幸的是,目前这在 NLog 中是不可能的。您必须自己清理日志文件。

    【讨论】:

    • 感谢您的信息,但它似乎不起作用,我将以下内容添加到配置 archiveFileName="c:\SupportLogs\${event-context:item=MessageId}.txt" archiveEvery="分钟"
    • 是的,很抱歉,归档期间事件上下文不可用,它永远是空的。我正在改变我的答案
    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2016-10-11
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多