簡體   English   中英

通過NLog配置文件xml修改用Configuration API指定的NLog配置

[英]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配置中使用FileTargetCreateNLogFileTarget ,您應該首先找出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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM