Заполнители Serilog {Application} и {Exception} не работают
Укороченная версия:
Обогащение журнала serilog, является ли "супер набор" для всех опций, определенных где-либо?
Более длинная версия:
https://github.com/serilog/serilog/wiki/Enrichment
Итак, у меня есть файл appsettings.json для моей конфигурации serilog.
(обращая внимание на Enrich)
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.RollingFile" ],
"MinimumLevel": "Debug",
"Enrich": [ "FromLogContext", "WithMachineName", "WithEnvironmentUserName", "WithThreadId", "WithProcessId", "WithExceptionDetails" ],
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "HelloConsole {Timestamp:o} [{Level:u3}] (App={Application}/MN={MachineName}/TID={ThreadId}) Msg={Message}{NewLine}Exc={Exception}{NewLine}"
}
},
{
"Name": "File",
"Args": {
"path": "Serilog.LogFile.txt",
"rollingInterval": "Minute",
"outputTemplate": "HelloFile {Timestamp:o} [{Level:u3}] (App={Application}/MN={MachineName}/TID={ThreadId}) Msg={Message}{NewLine}Exc={Exception}{NewLine}"
}
}
]
}
}
у меня есть
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Enrichers.Process" Version="2.0.1" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Enrichers.AssemblyName" Version="1.0.9" />
<PackageReference Include="Serilog.Enrichers.Context" Version="4.2.0" />
В документации указано следующее: (из https://github.com/serilog/serilog/wiki/Enrichment)
Serilog.Enrichers.Environment - WithMachineName() and WithEnvironmentUserName()
Serilog.Enrichers.Process - WithProcessId()
Serilog.Enrichers.Thread - WithThreadId()
Некоторые вещи, о которых я могу догадаться (используя документацию, собранную вместе со ссылкой на пакет)
но некоторые вещи, я такой "откуда это взялось?"
Например:
в json:
"FromLogContext"
какой пакет nuget связан с этим? Я предполагаю "Serilog.Enrichers.Context", но как я это узнаю?
С другой стороны, с "Serilog.Enrichers.AssemblyName" и "Serilog.Enrichers.Context", как мне узнать, что поместить в элемент.json"Enrich"?
Полный список пакетов... ниже... чтобы было ясно, что у меня есть "все".
<ItemGroup>
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Enrichers.AssemblyName" Version="1.0.9" />
<PackageReference Include="Serilog.Enrichers.Context" Version="4.2.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Enrichers.Process" Version="2.0.1" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Exceptions" Version="5.4.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
</ItemGroup>
Итак, с указанным выше объявлением json и "Enrich" и указанными выше пакетами nuget.... Я получаю это (в файле)... Обратите внимание на часть после "App=" и после "Exc=".....
HelloFile 2020-02-14T14:38:19.3951750-05:00 [INF] (App=/MN="MyComputerName"/TID=14) Msg=My Information Message
Exc=
HelloFile 2020-02-14T14:38:19.4021588-05:00 [ERR] (App=/MN="MyComputerName"/TID=10) Msg=My Exception Message
Exc=
Я не получаю (заполнитель ниже)
{Заявка}
и я не получаю (заполнитель ниже)
{Exception}
"залил"....... в моем.txt файле.
Я предполагаю, что у меня есть подходящие пакеты nuget для этих двух:
<PackageReference Include="Serilog.Enrichers.AssemblyName" Version="1.0.9" />
<PackageReference Include="Serilog.Exceptions" Version="5.4.0" />
Но это не работает.
поэтому короткий вопрос: "как заставить работать {Application}" и {Exception}?
больший вопрос.. где же "суперсписок" возможностей?
.......
и все волшебные {флаги}
{Timestamp:o}, {Level:u3}, {Application}, {MachineName}, {ThreadId}, {Message}, {NewLine}, {Exception}
Это где-нибудь задокументировано?
Обычно с моим Proof of Concept (над которым я работаю прямо сейчас) я делаю супер-набор всего и кухонную раковину......... но это было сложно собрать вместе.
Дополнительная информация:
Мое "приложение" - это dotnet-consoleapp.
EXE netcoreapp2.1;netcoreapp3.1
Бегу под 3.1 "профиль"....
Visual Studio 2019 на ОС Windows 10 Pro.