Numerous Log4Net SMTP consoles?

I configured the SMTP application to send email when an error occurs.

<appender name="EmailAppender"> <bufferSize value="50" /> <lossy value="false" /> <threshold value="ALL" /> <evaluator type="log4net.Core.LevelEvaluator,log4net"> <threshold value="ERROR" /> </evaluator> </appender> 

I also need to receive an email when the operation completes (which is not an error). I can theoretically register this as an error and receive an email, but in fact it is not an error, but an indication of the completion of the operation (more like INFO).

Should I add another SMTP application?

+4
source share
2 answers

You can change <threshold value="ERROR"/> to <threshold value="INFO"/> . This appender will then send emails for INFO, WARN, ERROR and FATAL.

If you need a user level, you can use something like:

 <level> <name value="CUSTOM"/> <value value="35000"/> </level> 

See this question for more information on how to filter user levels. Apache provides additional level information here .

+3
source

In one of my projects, I use namespaces to control logging. Here's a sample configuration:

 <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" > <param name="File" value="c:\\tmp\\remoteServerLog.txt" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="3MB" /> <param name="AppendToFile" value="false" /> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d %-5p %c - %m%n" /> </layout> </appender> <root> <priority value="ALL" /> </root> <logger name="NHibernate.SQL"> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> </logger> <logger name="NHibernate.Cfg"> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> </logger> <logger name="NHibernate"> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> </logger> <logger name="MyNameSpace.MyBusinessCore"> <level value="ALL" /> <appender-ref ref="LogFileAppender" /> </logger> 

Depending on the namespace of the source class, you can configure the logging level. Thus, in the above example, I register only WARNings from NHibernate and all from MyNameSpace.MyBusinessCore (including DEBUG and TRACE).

To summarize, in your example, I would add only the following:

 <root> <priority value="INFO" /> </root> <logger name="Your.Namespace "> <level value="INFO" /> <appender-ref ref="EmailAppender" /> </logger> 

Then your namespace will also send INFO level logs.

0
source

Source: https://habr.com/ru/post/1302546/


All Articles