nlog asp.netコア3、ロギング・コンポーネントを使用して、記録をどのように解決するためにない保存$ {BASEDIR}を使用

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

おすすめ

転載: www.cnblogs.com/tianfengcc/p/12619025.html