配置步骤:
1、在项目bin目录添加log4net.dll,下载地址http://logging.apache.org/log4net/download_log4net.cgi,当前版本是log4net 1,2,13,并添加引用
2、在AssemblyInfo.cs中增加如下
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
3、在web.config中<configuration>下面最前面增加如下
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="Debug_RollingLogFileAppender" type="log4net.Appender.FileAppender">
<!--存放日志的路径,logs是当前项目保存日志的文件夹-->
<param name="File" value="logs/" />
<!--是否想日志文件中追加-->
<param name="AppendToFile" value="true" />
<!--最多保存多少天的记录-->
<param name="MaxSizeRollBackups" value="100" />
<!--日期文件是否固定不变-->
<param name="StaticLogFileName" value="false" />
<!--日期文件格式-->
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Debug.log"" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
</appender>
<appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Debug.log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
<!--输出级别在DEBUG和DEBUG之间的日志-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="DEBUG" />
</filter>
</appender>
<appender name="Info_RollingLogFileAppender" type="log4net.Appender.FileAppender">
<!--存放日志的路径-->
<param name="File" value="logs/" />
<!--是否想日志文件中追加-->
<param name="AppendToFile" value="true" />
<!--最多保存多少天的记录-->
<param name="MaxSizeRollBackups" value="100" />
<!--日期文件是否固定不变-->
<param name="StaticLogFileName" value="false" />
<!--日期文件格式-->
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Info.log"" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
</appender>
<appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Info.log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
<!--输出级别在INFO和INFO之间的日志-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<appender name="Warn_RollingLogFileAppender" type="log4net.Appender.FileAppender">
<!--存放日志的路径-->
<param name="File" value="logs/" />
<!--是否想日志文件中追加-->
<param name="AppendToFile" value="true" />
<!--最多保存多少天的记录-->
<param name="MaxSizeRollBackups" value="100" />
<!--日期文件是否固定不变-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Warn.log"" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
</appender>
<appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Warn.log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="Warn" />
<levelMax value="Warn" />
</filter>
</appender>
<appender name="Error_RollingLogFileAppender" type="log4net.Appender.FileAppender">
<!--存放日志的路径-->
<param name="File" value="logs/" />
<!--是否想日志文件中追加-->
<param name="AppendToFile" value="true" />
<!--最多保存多少天的记录-->
<param name="MaxSizeRollBackups" value="100" />
<!--日期文件是否固定不变-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Error.log"" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
</appender>
<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Error.log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="Error" />
<levelMax value="Error" />
</filter>
</appender>
<appender name="Fatal_RollingLogFileAppender" type="log4net.Appender.FileAppender">
<!--存放日志的路径-->
<param name="File" value="logs/" />
<!--是否想日志文件中追加-->
<param name="AppendToFile" value="true" />
<!--最多保存多少天的记录-->
<param name="MaxSizeRollBackups" value="100" />
<!--日期文件是否固定不变-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Fatal.log"" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
</appender>
<appender name="FatalLog" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd"_Fatal.log"" />
<param name="RollingStyle" value="Date" />
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="FATAL" />
<levelMax value="FATAL" />
</filter>
</appender>
<!--定义日志的输出媒介,下面定义日志以五种方式输出。也可以下面的按照一种类型或其他类型输出。-->
<root>
<!--文件形式记录日志-->
<appender-ref ref="DebugLog" />
<appender-ref ref="InfoLog" />
<appender-ref ref="WarnLog" />
<appender-ref ref="ErrorLog" />
<appender-ref ref="FatalLog" />
</root>
<logger name="File">
<appender-ref ref="Debug_RollingLogFileAppender" />
<appender-ref ref="Info_RollingLogFileAppender" />
<appender-ref ref="Warn_RollingLogFileAppender" />
<appender-ref ref="Error_RollingLogFileAppender" />
<appender-ref ref="Fatal_RollingLogFileAppender" />
</logger>
</log4net>
4、程序调用方式
//创建日志记录组件实例
log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
//记录错误日志
log.Error("error", new Exception("发生了一个异常"));
//记录严重错误
log.Fatal("fatal", new Exception("发生了一个致命错误"));
//记录一般信息
log.Info("info");
//记录调试信息
log.Debug("debug");
//记录警告信息
log.Warn("warn");