Цель $ {currentdir} больше не генерирует файл - PullRequest
0 голосов
/ 20 января 2019

Я недавно обновил свой основной проект asp.net до .net core 2.2 и одновременно обновил NLog.Web.AspNetCore.

После того, как я сделал это (возможно совпадение?), Я заметил, что файлы журналане генерируется.

В моей конфигурации это моя цель:

<target xsi:type="File" name="allfile" fileName="${currentdir}/Logs/nlog-all-${shortdate}.log"
        layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />

После некоторой отладки я понял, что, если я укажу путь явно, то будет сгенерирован файл журнала:

<target xsi:type="File" name="allfile" fileName="E:\Project\Logs\nlog-all-${shortdate}.log"
        layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />

У меня установлен throwExceptions="true" в конфигурации, но когда файл не генерируется, исключение не выдается, он просто не создает файл.

Для дальнейшей отладки я создал консольный проекти добавил nuget NLog.Web.AspNetCore и скопировал мой конфиг.Теперь в консольном проекте он работает нормально и создает файлы журнала в выходном каталоге отладки.

Есть ли способ отладки, почему файл журнала не генерируется с этой целью в моем основном проекте?

1 Ответ

0 голосов
/ 20 января 2019

Вместо использования ${currentdir}, тогда рассмотрите возможность использования ${aspnet-appbasepath} (или ${basedir}, если не в процессе хостинга)

NLog InternalLogger обычно дает очень хорошие советы, когда что-тоне работает должным образом.

Пожалуйста, избегайте использования throwExceptions="true", как для модульного тестирования, а не для производственных сред.

...