Tengo un proyecto con la siguiente configuración de Serilog que funciona perfectamente bien al usar el filtro para excluir registros cuyo SourceContext comienza con "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" ] }Estoy buscando algo que filtre los registros por cierta palabra clave en el mensaje. Entonces, en lugar de usar SourceContext, necesito filtrar los registros cuyo mensaje real comienza con la palabra clave "AUDIT:".
Traté de filtrar usando algo como lo siguiente pero no funcionó.
"Filter": [ { "Name": "ByIncludingOnly", "Args": { "expression": "StartsWith(Message, 'AUDIT:')" } } ]¿Alguna idea de si podemos lograr algo como esto?
Descubrí cuál era el problema. En caso de filtrar a través de Mensaje, debemos poner @ delante de Mensaje a diferencia de SourceContext. Así que el siguiente filtro funcionó:
"Filter": [ { "Name": "ByExcluding", "Args": { "expression": "StartsWith(@Message, 'AUDIT::')" } } ]