配置文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<!-- Debug 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Log_Console/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Debug.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="时间:%d 内容: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Debug" />
<param name="LevelMax" value="Debug" />
</filter>
</appender>
<!-- Info 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Log_Console/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Info.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="时间:%d 内容: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Info" />
</filter>
</appender>
<!-- WARN 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Log_Console/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Warn.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="时间:%d 内容: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Warn" />
<param name="LevelMax" value="Warn" />
</filter>
</appender>
<!-- Error 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Log_Console/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Error.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="时间:%d 内容: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Error" />
<param name="LevelMax" value="Error" />
</filter>
</appender>
<!-- Fatal 将日志以回滚文件的形式写到文件中 -->
<appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender" >
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Log_Console/" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy-MM-dd/'Fatal.log'"/>
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5MB" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date"/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="时间:%d 内容: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Fatal" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender>
<root>
<!--控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
如果没有定义LEVEL的值,则缺省为DEBUG-->
<appender-ref ref="RollingFileDebug" />
<appender-ref ref="RollingFileInfo" />
<!--<appender-ref ref="RollingFileWarn" />-->
<!--<appender-ref ref="RollingFileError" />-->
<!--<appender-ref ref="RollingFileFatal" />-->
<level value="DEBUG" />
</root>
<logger name="NHibernate">
<level value="WARN" />
</logger>
</log4net>
日志记录类
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
namespace FileMonitor
{
/// <summary>
/// 日志帮助类
/// 需要设置 log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(Server.MapPath("~/MyConfig/Log4Net.config")));
/// 调用:private static readonly log4net.ILog MyLog = Log.LogHelper.GetInstance();
/// </summary>
public class LogHelper
{
private static ILog log;
private static LogHelper logHelper = null;
/// <summary>
/// 初始化
/// </summary>
/// <returns></returns>
public static ILog GetInstance()
{
logHelper = new LogHelper(null);
return log;
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="configPath"></param>
/// <returns></returns>
public static ILog GetInstance(string configPath)
{
logHelper = new LogHelper(configPath);
return log;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="configPath">配置文件路径</param>
private LogHelper(string configPath)
{
if (!string.IsNullOrEmpty(configPath))
{
log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
}
else
{
log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
}
}
}
引用的log4net.dll文件