[英]NLog ReconfigExistingLoggers creating new log?
我正在使用 Nlog,我需要更改默認日志的名稱以包含公司名稱等信息。 我很久以前在控制台應用程序上使用過這段代碼,它按預期重命名了文件。
我現在嘗試在新應用程序中使用相同的代碼,它正在創建一個新的日志文件,而不是僅僅重命名當前的。 例如,我現在有兩個文件( 2019-10.07.log
和2019-10-07_CompanyName.log
)。 默認日志將有很少的初始日志條目,然后將剩余的日志 go 放入新日志中。
尋找任何建議。 我一直在尋找修復程序,但一切都讓我回到了我已經在使用的代碼。
NLog v4.6.7
fileNameOnly = "CompanyName";
FileTarget defaultTarget = FindNLogTargetByName("DefaultTarget");
defaultTarget.FileName = logDirectory + string.Format("{0:yyyy-MM-dd}", DateTime.Now) + "_" + fileNameOnly + ".log";
LogManager.ReconfigExistingLoggers();
NLog 不支持重命名現有文件。 如果使用新文件名,所有日志都將附加到新文件中。
因此對於文件名,您需要使用System.IO.File.Move(path, pathnew)
並更改 NLog。
不幸的是,在進行大量日志記錄時有點棘手,因為 NLog 將重新創建舊的日志文件,直到目標被更改。
NLog 可以從 app.config 或 appsettings.json 加載設置(如公司名稱)。
只需更新您的 NLog.config 以引用該設置。 前任。
<target type="file" name="myfile" fileName="${appsetting:CompanyName}${shortdate}.log" />
另請參閱: https://github.com/NLog/NLog/wiki/AppSetting-Layout-Renderer (網絡框架)
另請參閱:https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer (網絡核心)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.