log4net使用
1. Create a config file calls 'log4net.config', and put it in 'c:\log\'
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!-- START Defining the sections --> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1B44E1D426115821" /> <!-- END Defining the sections --> </configSections> <log4net> <appender name="ServerLogFileAppenderInfo" type="log4net.Appender.RollingFileAppender"> <file value="C:\abc\server-info.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value=".yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> <securityContext type="log4net.Util.WindowsSecurityContext"> <credentials value="Process" /> </securityContext> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="DEBUG" /> <levelMax value="WARN" /> </filter> </appender> <appender name="ServerLogFileAppenderError" type="log4net.Appender.RollingFileAppender"> <file value="C:\abc\server-error.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value=".yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> <securityContext type="log4net.Util.WindowsSecurityContext"> <credentials value="Process" /> </securityContext> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="ERROR" /> <levelMax value="FATAL" /> </filter> </appender> <appender name="ApplicationLogFileAppenderInfo" type="log4net.Appender.RollingFileAppender"> <file value="C:\abc\application-info.log"/> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value=".yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> <securityContext type="log4net.Util.WindowsSecurityContext"> <credentials value="Process" /> </securityContext> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="DEBUG" /> <levelMax value="WARN" /> </filter> </appender> <appender name="ApplicationLogFileAppenderError" type="log4net.Appender.RollingFileAppender"> <file value="C:\abc\application-error.log"/> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value=".yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> <securityContext type="log4net.Util.WindowsSecurityContext"> <credentials value="Process" /> </securityContext> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="ERROR" /> <levelMax value="FATAL" /> </filter> </appender> <root> <level value="DEBUG"/> <appender-ref ref="ServerLogFileAppenderInfo" /> <appender-ref ref="ServerLogFileAppenderError" /> </root> <logger name="YourNameSpace" additivity="false"> <level value="DEBUG" /> <appender-ref ref="ApplicationLogFileAppenderInfo" /> <appender-ref ref="ApplicationLogFileAppenderError" /> </logger> </log4net> <!-- END configuration of log4net --> </configuration>
2. Create a Class Library Project call 'MyLogging', add a reference for log4net.dll. Add a new Class calls 'Logger.cs'.
public class Logger { private const string LOG4NET_CONFIG_FILE = "C:\\log\\log4net.config"; private log4net.ILog logger; private Logger() { log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(LOG4NET_CONFIG_FILE)); } public Logger(string loggerName) : this() { logger = log4net.LogManager.GetLogger(loggerName); } public Logger(Type type) : this() { logger = log4net.LogManager.GetLogger(type); } #region ILog Members public void Debug(object message) { if (logger.IsDebugEnabled) logger.Debug(message); } public void Debug(object message, Exception ex) { if (logger.IsDebugEnabled) logger.Debug(message, ex); } public void Info(object message) { if (logger.IsInfoEnabled) logger.Info(message); } public void Info(object message, Exception ex) { if (logger.IsInfoEnabled) logger.Info(message); } public void Warn(object message) { if (logger.IsWarnEnabled) logger.Warn(message); } public void Warn(object message, Exception ex) { if (logger.IsWarnEnabled) logger.Warn(message, ex); } public void Error(object message) { if (logger.IsErrorEnabled) logger.Error(message); } public void Error(object message, Exception ex) { if (logger.IsErrorEnabled) logger.Error(message, ex); } public void Fatal(object message) { if (logger.IsFatalEnabled) logger.Fatal(message); } public void Fatal(object message, Exception ex) { if (logger.IsFatalEnabled) logger.Fatal(message, ex); } #endregion }