Я использую Core 2.2 с Serilog через консольный приемник. В местном масштабе это прекрасно работает через Kestrel. Моя консоль открывается, и я получаю тонны журналов. Это меняется, когда я иду в IIS. Если я переключаю stdoutLogEnabled
в true и создаю каталог журналов и выдаю ему ACL "Все - изменить", я действительно получаю файл и получаю вывод:
Hosting environment: Production
Content root path: C:\inetpub\wwwroot\mysites\myapp-api
Application started. Press Ctrl+C to shut down.
Но вот и все. Мое приложение выдает 500 ошибок, но ничего не регистрируется. Локально, в моем окне консоли я вижу все эти журналы. Если Serilog входит в консоль через Stdout, то в чем проблема?
Кроме того, я попытался добавить приемник файлов и настроить его, но не смог заставить Serilog создать файл. Я думаю, может быть, я неправильно понял путь? Я предполагаю, что, если я получу вышеупомянутый журнал, ACL не проблема, и Serilog должен быть в состоянии написать. Но это другая проблема.
Если это имеет значение, я включил <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
в своем веб-проекте.
Serilog Config:
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Microsoft.AspNetCore.Authentication": "Information"
}
},
// Console logger. Use Web.Config to see this.
"WriteTo:ConsoleSublogger": {
"Name": "Logger",
"Args": {
"configureLogger": {
"WriteTo": [
{
"Name": "LiterateConsole",
"Args": {
"outputTemplate": "DevConf [{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}",
"theme": "Code"
}
}
]
},
"restrictedToMinimumLevel": "Debug"
}
},
"Enrich": [
"FromLogContext",
// Add full exception details using Serilog.Exceptions https://github.com/RehanSaeed/Serilog.Exceptions.
"WithExceptionDetails",
// Add the username and machine name to the logs using Serilog.Enrichers.Environment https://github.com/serilog/serilog-enrichers-environment.
"WithEnvironmentUserName",
"WithMachineName",
// Add the process ID and name to the logs using Serilog.Enrichers.Process https://github.com/serilog/serilog-enrichers-process.
"WithProcessId",
"WithProcessName",
// Add the current thread ID to the logs using Serilog.Enrichers.Thread https://github.com/serilog/serilog-enrichers-thread.
"WithThreadId"
],
"Properties": {
"Application": "myapp-api"
}
},