2017-04-16 11 views
2

ログを提供するためにNLog.Logging.Extensionsを使用してasp.netコアアプリケーションを作成しています。ASP.NETコアNLog nlog.configがロードされましたが無視されました

ログ登録:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { 
    loggerFactory.AddNLog(); 
    loggerFactory.ConfigureNLog("nlog.config"); 
    loggerFactory.AddConsole(); 
    loggerFactory.AddDebug(); 
    app.UseMvc(); 
} 

私はしかし、それは.configファイルで定義された私のログレイアウトのフォーマットと一致していない、ログ出力を取得していますし、それは情報の下には何も表示されません。 (ただし、設定ファイルにトレース以上を表示するように設定されています)。

これはなぜ発生する可能性があるのですか?

nlog.config:

<?xml version="1.0" encoding="utf-8"?> 
<nlog> 
    <variable name="Layout" value="${longdate} ${level:upperCase=true} ${message} (${callsite:includSourcePath=true})${newline}${exception:format=ToString}"/> 
    <targets> 
     <target name="debugger" type="Debugger" layout="${Layout}" /> 
     <target name="console" type="ColoredConsole" layout="${Layout}" detectConsoleAvailable="False"/> 
    </targets> 
    <rules> 
     <logger name="*" minlevel="Trace" writeTo="debugger,console" /> 
    </rules> 
</nlog> 

例ログ出力:

Hosting environment: Development 
Content root path: /Users/###/dev/###/Services/src/app/###/### 
Now listening on: http://localhost:8888 Application started. 
Press Ctrl+C to shut down. 
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] 
      Request starting HTTP/1.1 GET http://localhost:8888/State 
info: ###.###.###[0] 
      Building ### instance. 

答えて

4

いくつかの問題がここにあります。

loggerFactory.AddConsole(); 
loggerFactory.AddDebug(); 

、ログがあなたのレイアウトのフォーマットと一致しない理由です:あなたは、デフォルトの.NETのコア・ロガーを添付しましたので、ログ出力を得る

1.

loggerFactory.AddNLog(); 
loggerFactory.ConfigureNLog("nlog.config"); 

2. NLogの設定が壊れている:あなたが唯一のNLogを使用して、以下の2つだけのラインを維持することを計画している場合、それを削除します。 <add assembly="NLog.Web.AspNetCore"/>がありません。さらに、DebuggerターゲットがNLogで何かを壊しているようです。以下、完全に加工可能nlog.configがあります:

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <!-- Load the ASP.NET Core plugin --> 
    <extensions> 
    <add assembly="NLog.Web.AspNetCore"/> 
    </extensions> 

    <variable name="Layout" 
      value="${longdate}|${level:uppercase=true}|${logger}|${message}"/> 

    <targets> 
    <target name="console" 
      type="ColoredConsole" 
      layout="${Layout}" 
      detectConsoleAvailable="False"/> 
    </targets> 

    <rules> 
    <logger name="*" minlevel="Trace" writeTo="console" /> 
    </rules> 
</nlog> 

追加例:https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-(project.json)

+3

NB:デバッガターゲットはnetstandardでは利用できない、https://github.com/NLog/NLog/wiki/platformを参照してください-サポート – Julian