Почему моя служба Windows не записывает в мой файл журнала? - PullRequest
24 голосов
/ 13 мая 2009

У меня есть служба Windows, и я использую nlog для регистрации. Все работает нормально, когда я бегу из Visual Studio Ide. Файл журнала обновляется без проблем. Когда я устанавливаю службу, служба работает нормально, но файл журнала никогда не обновляется. Я работаю под локальной службой, если это помогает. Да, я создал каталог журналов в папке своего приложения.

 <?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" >

  <targets>
    <target name="file" xsi:type="File" fileName="${basedir}/logs/${shortdate}_info.txt"
            layout="${date} ${logger} ${message}" />
  </targets>

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

Ответы [ 12 ]

0 голосов
/ 21 февраля 2013

После создания проекта установки для моей службы и многократной установки я, наконец, понял, что не включил файл NLog.config в качестве одного из файлов для установки. Теперь, когда он включен вместе с исполняемым файлом, он работает отлично.

Для чего бы то ни было, файл NLog.config можно добавить вручную после свершившегося факта, но, возможно, потребуется остановить и перезапустить службу.

0 голосов
/ 08 октября 2012

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

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

Может быть, это вам поможет.

...