log4net
1.在Web.config配置文件中,给configuration添加第一个第二个子节点如下:
<configSections> <!--日志配置--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="App_Data/Log/" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="10" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyy-MM-dd'.txt'" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:fff} [%thread] %-5level %logger %ndc - %message%newline" /> </layout> </appender> <appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="App_Data/Log/" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="10" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyy-MM-dd'-error.txt'" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <param name="ConversionPattern" value="%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> </layout> </appender> <!--<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="App_Data/Log/log.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header] " /> <param name="Footer" value="[Footer] " /> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender>--> <root> </root> <logger additivity="true" name="InfoLog"> <level value="INFO" /> <appender-ref ref="RollingLogFileAppender" /> </logger> <logger additivity="true" name="ErrorLog"> <level value="ERROR" /> <appender-ref ref="ErrorLogAppender" /> </logger> </log4net>
log4net节点的另一配置方法
<log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="App_Data/Log/info.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:fff} [%thread] %-5level %logger %ndc - %message%newline" /> </layout> </appender> <appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="App_Data/Log/error.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <param name="ConversionPattern" value="%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> </layout> </appender> <root> </root> <logger additivity="true" name="InfoLog"> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> </logger> <logger additivity="true" name="ErrorLog"> <level value="ERROR" /> <appender-ref ref="ErrorLogAppender" /> </logger> </log4net>
2.新增Logger类
public static class Logger { private static ILog InfoLog= log4net.LogManager.GetLogger("InfoLog");//获取一个日志记录器 private static ILog ErrorLog = log4net.LogManager.GetLogger("ErrorLog");//获取一个日志记录器 public static void Info(string message) { InfoLog.Info(message); } public static void Error( string error) { ErrorLog.Error(error); } public static void Error(Exception ex, string error) { ErrorLog.Error(error,ex); } public static void Warn(string message) { InfoLog.Warn(message); } }
3.在Global.asax.cs的Application_Start方法中调用 log4net.Config.XmlConfigurator.Configure();
4.调用示例
Logger.Info("提示信息"); Logger.Error("错误信息");
5.效果
注:
文件名累加的解决方法:
在appender节点里添加:
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />