AppDomain.CurrentDomain.BaseDirectoryに$ {BASEDIR}ポイント
Asp.Net.Core溶液(Program.csの中に2行を追加します)次のようになります。
VAR appBasePath = System.IO.Directory.GetCurrentDirectory()。 NLog.GlobalDiagnosticsContext.Set(" appbasepath " 、appBasePath)。 VARロガー= LogManager.LoadConfiguration(" nlog.config ").GetCurrentClassLogger();
その後、することができます${gdc:item=appbasepath}
でnlog.config
:
<?xmlのバージョン= " 1.0 "?> <nlogのxmlns = " http://www.nlog-project.org/schemas/NLog.xsd " のxmlns:XSI = " http://www.w3.org/2001/ XMLスキーマ・インスタンス" 自動再 = " 真" internalLogLevel = " 警告する" internalLogFile = " $ {GDC:アイテム= appbasepath} \ログ\内部nlog.txt " > <拡張子> <アセンブリを追加= " NLog.Web.AspNetCore " / > </拡張> <ターゲット非同期 = " 真の" > <ターゲット名= " ownfile "のxsi:タイプ= " ファイル" concurrentWrites = " 真" keepFileOpen = " 真の" fileNameに = " $ {GDC:アイテム= appbasepath} \ \ nlogを記録- $ {shortdate} .logの" コード = " UTF-8 " レイアウト = "$ {longdate} | $ {MACHINENAME} | $ {大文字:$ {レベル}} | $ {ロガー} | $ {メッセージ} | $ {例外:形式=のtoString} | $ {ASPNET要求法} | $ { ASPNET-traceidentifier} | $ {ASPNET要求-IP} | $ {ASPNET要求-URL} | $ {ASPNET-MVC-アクション} " /> </ターゲット> <ルール> < -スキップ非クリティカルマイクロソフト!ログとこれだけ自分のログを記録する- > <ロガー名= " マイクロソフト* " maxLevel = " 情報"最後の= " 真" /> <ロガー名= " * " minlevel = " 情報"のwriteTo = "ownfile " /> </ルール> </ nlog>
本文出自:http://tianfeng.cc/Article/5879