如何使用log4net在Web中应用?其实很简单,你只要对程序作如何修改即可:
1.在common中加入log4netHelper.cs
public class log4netHelper
{
public static void debug(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(“Test”);
if (log.IsDebugEnabled)
{
log.Debug(message);
}
log = null;
}
public static void error(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(“Test”);
if (log.IsErrorEnabled)
{
log.Error(message);
}
log = null;
}
public static void fatal(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(“Test”);
if (log.IsFatalEnabled)
{
log.Fatal(message);
}
log = null;
}
public static void info(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(“Test”);
if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
}
public static void warn(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(“Test”);
if (log.IsWarnEnabled)
{
log.Warn(message);
}
log = null;
}
}
2.在AssemblyInfo.cs中增加一行
[assembly: log4net.Config.XmlConfigurator(ConfigFile = “log4net.config”, Watch = true)]
3.增加log4net.config文件,进行要求的配置:每天换文件名等,请参考
<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>
<configSections>
<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>
<log4net>
<!– OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL –>
<!– Set root logger level to ERROR and its appenders –>
<root>
<level value=”ALL”/>
<appender-ref ref=”SysAppender”/>
</root>
<!– Print only messages of level DEBUG or above in the packages –>
<logger name=”Test”>
<level value=”DEBUG”/>
<appender-ref ref=”SysAppender” />
</logger>
<appender name=”SysAppender” type=”log4net.Appender.RollingFileAppender,log4net” >
<param name=”File” value=”log/” />
<param name=”AppendToFile” value=”true” />
<param name=”RollingStyle” value=”Date” />
<param name=”DatePattern” value=”"Logs_"MMddyyyy".txt"” />
<param name=”StaticLogFileName” value=”false” />
<layout type=”log4net.Layout.PatternLayout,log4net”>
<param name=”ConversionPattern” value=”%d{dd-MM-yyyy} [%t] %-5p %c – %m %F %n” />
<param name=”Header” value=” ———————-header————————– ” />
<param name=”Footer” value=” ———————-footer————————– ” />
</layout>
</appender>
</log4net>
</configuration>
4.使用:
sis_common.log4netHelper.info(“Start Page….”);
LOG4Net.config修改了一下
1.原来出来只有日期,加上时间
2.只留下 <root>
<level value=”ALL”/>
<appender-ref ref=”SysAppender”/>
</root>
其他的删除。
<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>
<configSections>
<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>
<log4net>
<!– OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL –>
<!– Set root logger level to ERROR and its appenders –>
<root>
<level value=”ALL”/>
<appender-ref ref=”SysAppender”/>
</root>
<appender name=”SysAppender” type=”log4net.Appender.RollingFileAppender,log4net” >
<param name=”File” value=”log/” />
<param name=”AppendToFile” value=”true” />
<param name=”RollingStyle” value=”Date” />
<param name=”DatePattern” value=”"Logs_"MMddyyyy".txt"” />
<param name=”StaticLogFileName” value=”false” />
<layout type=”log4net.Layout.PatternLayout,log4net”>
<param name=”ConversionPattern” value=”%d{dd-MM-yyyy hh:mm:ss} [%t] %-5p %c – %m %F %n” />
<param name=”Header” value=” ———————-header————————– ” />
<param name=”Footer” value=” ———————-footer————————– ” />
</layout>
</appender>
</log4net>
</configuration>
Log4net日志文件自动按月份存放和日志独占问题的解决
让log4net日志文件自动按月份存放
log4net日志文件的作用还真不小,可以保存管理员、用户对数据库的任何操作,保存管理员和用户的登录记录,分析系统运行错误,所以不舍得随便将日志文件Delete。如果时间长了,日志文件夹一定会有很多很多日志文件,不便于管理员查看。
所以让log4net日志文件自动按月份存放是必须的,其实方法很Easy,额是突发奇想在DatePattern
value中增加“yyyyMM\”,运行后果然如额所愿。
也就是修改Web.Config文件如下:
<file
value=”Log\”/><!–日志文件夹及文件名开头–>
<DatePattern
value=”yyyyMM\yyyy-MM-dd".log"”/><!–文件名后面加上.log后缀,必须使用转义字符–>
解决log4net独占日志文件的问题
由于log4net默认情况下会独占日志文件该文件不能被File.Open,否则会出现异常错误,甚为郁闷。网上找到的解决方法:
修改Web.Config文件,在<appender
name=”RollingFileAppender”
type=”log4net.Appender.RollingFileAppender”></appender>节中加入:<lockingModel
type=”log4net.Appender.FileAppender+MinimalLock” />就可以了,即使用最小锁定模型(minimal
locking model),以允许多个进程可以写入同一个文件
所以现在最新的log4net.config是:
<?xml
version=”1.0″ encoding=”utf-8″
?>
<configuration>
<configSections>
<section
name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net”
/>
</configSections>
<log4net>
<!– OFF, FATAL,
ERROR, WARN, INFO, DEBUG, ALL –>
<!– Set root logger level to ERROR
and its appenders –>
<root>
<level
value=”ALL”/>
<appender-ref
ref=”SysAppender”/>
</root>
<appender name=”SysAppender”
type=”log4net.Appender.RollingFileAppender,log4net” >
<lockingModel
type=”log4net.Appender.FileAppender+MinimalLock” />
<param name=”File”
value=”log/” />
<param name=”AppendToFile” value=”true”
/>
<param name=”RollingStyle” value=”Date” />
<param
name=”DatePattern”
value=”"Logs_"MMddyyyy".txt"”
/>
<param name=”StaticLogFileName” value=”false” />
<layout
type=”log4net.Layout.PatternLayout,log4net”>
<param
name=”ConversionPattern” value=”%d{dd-MM-yyyy hh:mm:ss} [%t] %-5p %c – %m
(%F:%L) %n” />
<param name=”Header”
value=” ———————-header————————– ”
/>
<param name=”Footer”
value=” ———————-footer————————– ”
/>
</layout>
</appender>
</log4net>
</configuration>