我有一个项目与以下Serilog配置,它在使用过滤器来排除日志的SourceContext以“Microsoft "开始工作得非常好。
"Serilog": {
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\FE\\Logs\\Gateway\\LOG-.txt",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fffffff} | {Level:u3} {Message}"
}
}
],
"Filter": [
{
"Name": "ByExcluding",
"Args": {
"expression": "StartsWith(SourceContext, 'Microsoft.')"
}
}
],
"Enrich": [
"FromLogContext",
"WithMachineName"
]
}
我正在寻找的东西,将过滤日志的某些关键字上的消息。所以,而不是使用SourceContext,我需要过滤日志的实际消息开始于关键字“审计:“。
我尝试使用类似以下内容进行过滤,但没有成功。
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "StartsWith(Message, 'AUDIT:')"
}
}
]
你知道我们能不能做到吗?
2条答案
按热度按时间tjrkku2a1#
在新的serilog库中,@Message是@m
同样地,
希望,这有帮助!
p3rjfoxz2#
我发现了问题所在。在通过Message进行过滤的情况下,我们需要将@放在Message前面,而不是SourceContext。因此,下面的过滤器工作正常: