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.
source share