2016-11-14 2 views
0

Я использую NLog в своем основном приложении Asp.net Core, но NLog не умеет записывать в файл, у меня есть все готовые разрешения на изменение файла, но все еще сталкиваются с проблемой. файл создается, в первый раз, но не удается записать журнал в этот файл.NLog не записывается в файл в Asp.net Core

Вот мой 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:\git\damienbod\AspNetCoreNlog\Logs\internal-nlog.txt"> 

    <targets> 
     <target xsi:type="File" name="allfile" fileName="D:\nlog-all.txt" 
        layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" 
        keepFileOpen="false"/> 
     <target xsi:type="EventLog" 
      name="String" 
      layout="Layout" 
      machineName="String" 
      source="Layout" 
      category="Layout" 
      eventId="Layout" 
      log="String" 
      maxMessageLength="Integer" /> 
    </targets> 

    <rules> 
     <!--All logs, including from Microsoft--> 
     <logger name="*" minlevel="*Info*" maxLevel="*Deubg*" writeTo="allfile" /> 
    </rules> 
    </nlog> 

А вот код моего контроллера

NLog.Logger _Logger= LogManager.GetCurrentClassLogger(); 
      _Logger.Info("Hello i m executing"); 
+0

У меня есть изменения в соответствии с вашим предложением @ THE FORCE JB, minlevel = «Debug», но все еще сталкиваются с одной проблемой –

+0

Есть ли сообщение об ошибке во внутреннем журнале? Кажется, нет других неправильных настроек, у меня есть работоспособный NLog.config в [github] (https://github.com/KarateJB/Angular2.Mvc/blob/master/Angular2.Mvc/src/Angular2.Mvc.Website/NLog. config), надеюсь, что это поможет! –

ответ

0

Я думаю, это потому, что уровень «Info» на самом деле имеет более высокий приоритет чем «Отладка». Измените конфигурацию, как это может работать.

<logger name="*" minlevel="Debug" maxLevel="Info" writeTo="File" /> 

Ссылка: NLOG Configuration

0

Я думаю, что ваш конфигурационный файл должен понравится.

<?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:\git\damienbod\AspNetCoreNlog\Logs\internal-nlog.txt"> 

    <!-- define various log targets --> 
    <targets> 
    <!-- write logs to file --> 
    <target xsi:type="File" name="allfile" fileName="D:\nlog-all.txt" 
       layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" keepFileOpen="false"/> 

    </targets> 

    <rules> 
    <logger name="*" minlevel="Debug" maxlevel="Info" writeTo="allfile" /> 
    </rules> 
</nlog> 

Я удалил ненужные части, а также mixlevel и МАКСЛЕВЕЛ как предложено @The FORCE Jb вы должны указать.

Кроме этого, я также вижу, что у вас есть тип для слова DEBUG.

0

Вам нужен пакет NLog.Extensions.Logging (NuGet link) для .NET Ядра и включить NLog в startup.cs:

public void Configure(IApplicationBuilder app, 
         IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    //add NLog to ASP.NET Core 
    loggerFactory.AddNLog(); 

    //configure nlog.config in your project root 
    env.ConfigureNLog("nlog.config"); 

    ... 

Для получения дополнительной информации см GitHub page

+0

Я тоже сделал это, все еще сталкиваясь с проблемой –

+0

Спасибо за поддержку –

0

Просто перейдите по этой ссылке: https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-(csproj---vs2017)

Вы должны включить копию в папку бен для nlog.config Image copy nlog.config

+0

ссылки только ответ подвержены модерации, пожалуйста, добавьте некоторые пояснения из предоставленной ссылки. –

+0

Nlog.config необходимо скопировать при компиляции в папку bin. Итак, перейдите в свойства nlog.config и выберите опцию «Копировать всегда» для раздела с именем «Копировать в выходной каталог» :) Надеюсь, это поможет и яснее, чем предыдущий ответ. –

+0

Спасибо, но я уже решил это. –

Смежные вопросы