[英]Modify NLog configurations specified with Configuration API through NLog config file xml
我有一個使用以下代碼創建NLog實例的項目。
public FileTarget CreateNLogFileTarget(string layout, FileArchivePeriod archiveMode, int maxArchiveFiles,
bool keepFileOpen, bool enableConcurrentWrites, ArchiveNumberingMode archiveNumberingMode, string fileName)
{
FileTarget fileTarget = new FileTarget();
fileTarget.Layout = layout;
fileTarget.ArchiveEvery = archiveMode;
fileTarget.MaxArchiveFiles = maxArchiveFiles;
fileTarget.KeepFileOpen = keepFileOpen;
fileTarget.ConcurrentWrites = enableConcurrentWrites;
fileTarget.ArchiveNumbering = archiveNumberingMode;
fileTarget.FileName = fileName;
return fileTarget;
}
FileTarget infoLogFileTarget = CreateNLogFileTarget(@"${longdate} ${message}",
FileArchivePeriod.Hour, 70, false, true, ArchiveNumberingMode.Rolling, "${basedir}/Logs/" + infoLogName + "/${shortdate}{#}.log");
我正在另一個項目中使用此項目,並且需要使用此NLog實用程序類來創建記錄器。 但是我需要重寫這些配置。 如何通過xml文件覆蓋這些配置? 任何幫助將非常感激。
要在XML配置中使用FileTarget
的CreateNLogFileTarget
,您應該首先找出FileTarget
的目標名稱,它可能在代碼的其他部分。 然后,您可以在配置中使用目標:
<logger name='*' minlevel="Trace" writeTo='theTarget' />
也許通過使用NLog變量。 更改您的CreateNLogFileTarget以設置參數以從NLog變量獲取其值。
然后在啟動時檢查這些NLog變量在已加載的NLog配置中是否已經存在。 如果不是,則在調用CreateNLogFileTarget之前由運行時設置它們。
https://github.com/NLog/NLog/wiki/Configuration-file#variables
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.