【发布时间】:2021-09-13 03:54:06
【问题描述】:
我有一个具有以下 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"
]
}
我正在寻找可以通过消息中的某个关键字过滤日志的东西。因此,我需要过滤实际消息从关键字“AUDIT:”开始的日志,而不是使用 SourceContext。
我尝试使用以下内容进行过滤,但没有成功。
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "StartsWith(Message, 'AUDIT:')"
}
}
]
知道我们是否可以实现这样的目标吗?
【问题讨论】:
-
不起作用是什么意思?你想要 ByIncludingOnly 吗?
-
对不起,我打错了。即使使用 "ByIncludingOnly" ,它也不是用 "expression" 过滤的:"StartsWith(Message, 'Application')" 我的问题是我们不能像使用 "SourceContext" 那样使用 "Message" 进行过滤吗?
标签: .net logging serilog serilog-filter