Я опубликовал исходный ответ, предполагая, что проблема заключалась в отсутствии свойства Using
в конфигурации Serilog.У меня всегда было это в моих проектах, и это было единственное, чего не хватало в настройках OP.Но после публикации ответа я попробовал другие варианты конфигурации, в том числе те же, что и в вопросе, и журналы все еще создавались.Читая больше, я обнаружил, что свойство Using
не является обязательным.Из пакета serilog-settings-configuration
:
(Этот пакет реализует соглашение, использующее DependencyContext для поиска любого пакета с Serilog в любом месте имени и извлекает из него методы конфигурации, поэтому Using приведенный выше пример является избыточным.) Источник: https://github.com/serilog/serilog-settings-configuration
Как выяснилось (см. комментарии к вопросу), реальная проблема заключалась в расположении файла журнала и разрешениях на запись.В коде все уже работало.
Я оставлю здесь первоначальный ответ, как исторический вопрос, но его содержание на самом деле ничего не исправляет, так как в первую очередь ничего не сломалось.
Оригинальный ответ:
Я считаю, что проблема в том, что вы не указали в appsettings
фактическое использование приемника RollingFile
.Я только что быстро создал новое приложение, и оно работает:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.RollingFile" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "RollingFile",
"Args": { "pathFormat": "log-{Date}.txt" }
}
],
"Properties": {
"Application": "Sample"
}
}
Используя следующие пакеты NuGet:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.0.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
</ItemGroup>
Это ведет к файлу в корневом каталоге приложения log-20190304.txt
.