2017-05-03 25 views
0

NLog.Web.AspNetCore(4.3.1)のnugetパッケージを使用して、完全な.NET Framework 4.6.2でasp.netコアプロジェクトを使用しています。以下は私の設定です。NLog Not logging(Asp.net core with .net 4.6.2)

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" 
    autoReload="true" 
    internalLogLevel="Warn" 
    internalLogFile="c:\Logs\internal-nlog.txt"> 
    <!-- define various log targets --> 
<targets> 
    <!-- write logs to file --> 
    <target xsi:type="File" name="allfile" fileName="c:\Logs\nlog-all-${shortdate}.log" 
     layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception:format=stacktrace}" 
     maxArchiveFiles="100" 
     archiveFileName="c:\LogsBackup\nlog-all-${shortdate}.{##}.log" 
     archiveNumbering="DateAndSequence" 
     archiveAboveSize="10000000" 
     archiveDateFormat="yyyyMMdd" /> 
    <target xsi:type="File" name="ownFile-web" fileName="c:\Logs\nlog-own-${shortdate}.log" 
     layout="${longdate}|${logger}|${uppercase:${level}}| ${message} ${exception:format=stacktrace}" /> 
    <target xsi:type="Null" name="blackhole" /> 
</targets> 
<rules> 
    <!--All logs, including from Microsoft--> 
    <logger name="*" minlevel="Trace" writeTo="allfile" /> 
    <!--Skip Microsoft logs and so log only own logs--> 
    <!--<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />--> 
    <!--<logger name="*" minlevel="Trace" writeTo="ownFile-web" />--> 
</rules> 
</nlog> 

Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
     loggerFactory.AddDebug(); 

     //add nlog 
     //env.ConfigureNLog("nlog.config"); 
     //loggerFactory.ConfigureNLog("nlog.config"); 
     //loggerFactory.AddNLog(); 
     app.AddNLogWeb(); 

     //add identity server authentication 
     //app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions 
     //{ 
     // Authority = "http://localhost:5000", 
     // RequireHttpsMetadata = false, 
     // ApiName = "prismapi" 
     //}); 

     app.UseMvcWithDefaultRoute(); 

     app.UseSwagger(); 
     app.UseSwaggerUI(options => 
     { 
      options.SwaggerEndpoint("/swagger/v1.0/swagger.json", "Prism api version 1"); 
     }); 
    } 

何らかの理由で、その発光ないログの場合。 Nlogは内部ログファイルを作成していません。面白いことに、私はenv.ConfigureNLog("nlog.config");のコメントを外すと、少なくとも内部ログファイルを作成し始めますが、実際のログファイルでは成功しません。

答えて

1

おそらくConfigureメソッドでapp.AddNLogWeb();の前にコメントを外してからloggerFactory.AddNLog();する必要があります。

env.ConfigureNLog("nlog.config");は、ドキュメントの例に従ってコンストラクタに記述する必要があります。

も私も例のように、コードの同じ行で開始するアドバイスしたいhttps://github.com/NLog/NLog.Extensions.Logging

How to useセクションをご覧ください。それが働いている場合は、あなたのニーズに応じて変更します。

これが役に立ちます。

+0

これは役に立ちました、多くのありがとう:) –

関連する問題