I have messages in my logs like this
2025-03-07 14:47:38.7205 INFO System.Net.Http.HttpClient.signed.LogicalHandler Start processing HTTP request POST http://localhost:5000/api/KATA/scans?sensorInstanceId=instance1
2025-03-07 14:47:38.7266 TRACE System.Net.Http.HttpClient.signed.LogicalHandler Request Headers: Content-Type: multipart/form-data; boundary="48f29d53-2916-4b86-bc52-3283ad131dfc"
I want to receive only warnings and errors from System.Net.Http.HttpClient.*
.
This is my nlog.config
:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns=".xsd"
xmlns:xsi=";
xsi:schemaLocation=".xsd NLog.xsd"
autoReload="true">
<targets>
<target xsi:type="File" name="fileTarget" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
<target xsi:type="ColoredConsole" name="consoleTarget" layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="consoleTarget" >
<logger name="*" minlevel="Trace"x writeTo="fileTarget">
<filters defaultAction="Log">
<when condition="contains('${logger}', 'System.Net.Http.HttpClient') and level < LogLevel.Info" action="Ignore" />
</filters>
</logger>
</rules>
</nlog>
But my filter doesn't work. I tried filter without level and it works:
<when condition="contains('${logger}', 'System.Net.Http.HttpClient')" action="Ignore" />
How to write a filter with a level?
I have messages in my logs like this
2025-03-07 14:47:38.7205 INFO System.Net.Http.HttpClient.signed.LogicalHandler Start processing HTTP request POST http://localhost:5000/api/KATA/scans?sensorInstanceId=instance1
2025-03-07 14:47:38.7266 TRACE System.Net.Http.HttpClient.signed.LogicalHandler Request Headers: Content-Type: multipart/form-data; boundary="48f29d53-2916-4b86-bc52-3283ad131dfc"
I want to receive only warnings and errors from System.Net.Http.HttpClient.*
.
This is my nlog.config
:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project./schemas/NLog.xsd"
xmlns:xsi="http://www.w3./2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project./schemas/NLog.xsd NLog.xsd"
autoReload="true">
<targets>
<target xsi:type="File" name="fileTarget" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
<target xsi:type="ColoredConsole" name="consoleTarget" layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="consoleTarget" >
<logger name="*" minlevel="Trace"x writeTo="fileTarget">
<filters defaultAction="Log">
<when condition="contains('${logger}', 'System.Net.Http.HttpClient') and level < LogLevel.Info" action="Ignore" />
</filters>
</logger>
</rules>
</nlog>
But my filter doesn't work. I tried filter without level and it works:
<when condition="contains('${logger}', 'System.Net.Http.HttpClient')" action="Ignore" />
How to write a filter with a level?
Share edited Mar 7 at 18:08 Rolf Kristensen 20.1k2 gold badges58 silver badges83 bronze badges asked Mar 7 at 12:03 SullenManSullenMan 574 bronze badges1 Answer
Reset to default 1Logging-Rules are much faster than filters, as the filter requires allocation of LogEventInfo
to execute the filter.
I recommend that you use finalMinLevel
to suppress noisy loggers, that has been introduced with NLog v5:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project./schemas/NLog.xsd"
xmlns:xsi="http://www.w3./2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project./schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwConfigExceptions="true">
<targets>
<target xsi:type="File" name="fileTarget" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
<target xsi:type="ColoredConsole" name="consoleTarget" layout="${longdate} ${uppercase:${level}} ${logger} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="consoleTarget" />
<logger name="System.Net.Http*" finalMinLevel="Warn" />
<logger name="*" minlevel="Trace" writeTo="fileTarget" />
</rules>
</nlog>
See also: https://github/NLog/NLog/wiki/Logging-Rules-FinalMinLevel
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744930876a4601728.html
评论列表(0条)