我有一个将通过排队系统接收消息的应用程序,我想将每条消息记录到自己的文件中,文件名是消息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);
答案 0 :(得分:1)
不幸的是,目前在NLog中是不可能的。您必须自己清理日志文件。