需要根據不同環境改變nlog.config中的設定時,可以透過Layout renderer直接把nlog.config中的參數置換成appsettings中對應的值
之前是透過gdc來實作動態更換nlog.config中的連線字串
根據部署環境動態配置NLog連線字串 | 攻城獅的學習筆記 - 點部落 (dotblogs.com.tw)
後來發現NLog其實支援直接從appsettings中取資料,以前面那篇文章的例子來改寫
appsettings.json中的連線字串長這樣
{
"ConnectionStrings": {
"LoggerDB": "Server=localhost;Port=3306;User Id=root;Password=*****;Database=Logger;Allow User Variables=true;SslMode=none;"
}
}
nlog.config中連線字串的部份改成
<connectionString>${configsetting:item=ConnectionStrings.LoggerDB}</connectionString>
若要取appsettings巢狀結構的值,key之間使用做連接就可以了
參考文章:
NLog在Asp.Net中也可以直接讀取config檔中的設定,詳細請參考這篇: