Журналы NLog не регистрируются - PullRequest
1 голос
/ 24 марта 2020

Я новичок в NLog и пытаюсь использовать его в новом приложении, которое я пишу ...

Ниже приведен мой конфиг NLog.

При отладке в VS я получаю ожидаемые журналы, но когда я собираю и запускаю программу вне VS, я не вижу никаких журналов.

Есть идеи, почему?

<?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"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="true"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <!-- optional, add some variables
  https://github.com/nlog/NLog/wiki/Configuration-file#variables
  -->
  <variable name="myvar" value="myvalue"/>

  <!--
  See https://github.com/nlog/nlog/wiki/Configuration-file
  for information on customizing logging rules and outputs.
   -->
  <targets>

    <!--
    add your targets here
    See https://github.com/nlog/NLog/wiki/Targets for possible targets.
    See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
    -->

    <!--Write events to a file with the date in the filename.-->
    <target xsi:type="ColoredConsole" name="ColoredConsole" useDefaultRowHighlightingRules="true"
            layout="${message}" />

    <target xsi:type="File" name="ConsilioDeployTool_CLI_ErrorLog" fileName="${basedir}/logs/ConsilioDeployTool_CLI_ErrorLog_${shortdate}.log">
      <layout xsi:type="CsvLayout" delimiter="Pipe" withHeader="true">
        <column name="level" layout="${level:upperCase=true}"/>
        <column name="callsite" layout="${callsite:includeSourcePath=true}" />
        <column name="stacktrace" layout="${stacktrace:topFrames=10}" />
        <column name="exception" layout="${exception:format=ToString}"/>
        <column name="logger" layout="${logger:shortName=false}"/>
        <column name="message" layout="${message}" />
      </layout>
    </target>

  </targets>

  <rules>
    <!-- add your logging rules here -->

    <!-- Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f" -->
    <logger name="*" level="Info" writeTo="ColoredConsole" />
    <!--<logger name="*" level="Error" writeTo="ConsilioDeployTool_CLI_ErrorLog" />-->
    <logger name="*" level="Error" writeTo="ConsilioDeployTool_CLI_ErrorLog" />

  </rules>
</nlog>

1 Ответ

1 голос
/ 24 марта 2020

Убедитесь, что у пользователя IIS_IUSRS есть права на запись в папку сайта.

. Вы можете назначить разрешение на запись, выполнив следующие действия:

  • В windows проводнике щелкните правой кнопкой мыши на сайте. папка
  • выберите Свойства
  • нажмите на вкладку Безопасность
  • Нажмите Изменить ...
  • под Имена групп или пользователей: , выберите IIS_IUSRS
  • Под Разрешения для IIS_IUSRS , установите флажок Запись, чтобы разрешить пользователь пишет в папку сайта
  • Нажмите Применить , а затем OK и OK еще раз, чтобы закрыть окно свойств

Надеюсь, это поможет

...