[英]Min and Max level for Serilog logger sinks
我們發現serilog 中存在restrictedToMinimumLevel
屬性,但它是否也支持max level 屬性?
早些時候我們使用了NLog
,它具有最小和最大日志記錄級別( https://github.com/NLog/NLog/wiki/Configuration-file#rules )。 我們想從debug to information
記錄debug to information
控制台中的information to warning
文件中的information to warning
和數據庫中的errors
。 我們可以使用 appsettings.json 做到這一點嗎? 我們正在使用 dotnet core 2.2。 任何幫助是極大的贊賞。
答案有點晚了,但我只是有同樣的問題並找到了解決方案。 也許它會對像我這樣的人有所幫助。
在這種情況下,可以使用結合Serilog.Expressions
包的子記錄器。 Sublogger 是主記錄器中的一個新記錄器,您可以為其設置過濾規則。 例如,這個配置說, Debug
和Information
日志將寫入 Console sink,具有Information
和Warning
級別的日志將寫入 SqlServer sink。
這是表達式語言的參考: https : //github.com/serilog/serilog-expressions#language-reference 。
JSON 配置將如下所示:
{
"Serilog": {
//... serilog config
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "@l in ['Debug', 'Information']"
}
}
],
"WriteTo": [
{
"Name": "Console",
"Args": {
//Console sink config
}
}
],
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "@l in ['Information', 'Warning']"
}
}
],
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
//MSSqlServer sink config
}
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.