#c# #iis #serilog #seq
#c# #iis #serilog #seq
Вопрос:
У меня есть ASP.Net Основное приложение, в котором я настроил Seq и Serilog. Когда я запускаю приложение в Kestrel или в IIS Express, журналы отображаются на сервере Seq (запущенном в Docker по адресу http://localhost:5341 /)
Когда я запускаю то же приложение в IIS в Windows 10, журналы в Seq не отображаются.
Вот настройки для пула приложений:
Вот мой appsettings.json
{
"AllowedHosts": "*",
"ConnectionStrings": {
"MyApp": "Server=.;Database=MyApp;User ID=sa;Password=letmein123456;"
},
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId", "WithAssemblyName", "WithAssemblyVersion" ],
"WriteTo": [
{ "Name": "Console" },
{ "Name": "Debug" },
{
"Name": "File",
"Args": {
"path": "Logs/log-.log",
"rollingInterval": "Day",
"shared": true
}
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341"
}
}
],
"preserveStaticLogger": false,
"Properties": {
"Application": "My.Test.App"
}
}
}
И вот как я настраиваю Serilog / Seq:
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
Есть какие-либо подсказки о том, что я делаю неправильно?
Комментарии:
1. Если у вас есть ASP.NET Core app, почему ваш пул приложений настроен на использование версии .NET CLR? Вы должны использовать «нет управляемого кода».
2. Отображаются ли журналы приемника файлов? Вы пробовали включить самостоятельный журнал , как описано в документации?
3. Изменение .NET CLR на отсутствие управляемого кода сделало свое дело! Спасибо!