一 前言
网上搜到的log4net配置多是针对web application项目 的和winForm项目,针对Web site项目的太少或者描述不清。web application项目和web site项目的区别 请参考http://www.cnblogs.com/ceachy/articles/2149075.html
本文将描述web site项目下的log4net配置.
二 解决方案
1.在web site项目里添加 log4net.config配置文件,配置文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--type逗号之后是log4net的dll名-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>
<log4net>
<!--定义输出到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定义文件存放位置-->
<file value="App_Data/lqz.log"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd-HH:mm:ss"/>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<footer value="by saibo3s "/>
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%date thread ID:[%thread] 级别:%-5level %n %c [%p]%n - 错误描述:%m%n"/>
</layout>
</appender>
<!--定义输出到控制台命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name ="ConversionPattern" value="%d [%t] %-5level %c [%p] - %m%n"/>
<!--<conversionPattern value="%d [%t] %-5level %c [%p] - %m%n"/>-->
</layout>
</appender>
<!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
<root>
<level value="DEBUG"/>
<!--文件形式记录日志-->
<appender-ref ref="LogFileAppender"/>
<!--控制台控制显示日志,在web项目中禁用-->
<!--<appender-ref ref="ConsoleAppender"/>-->
</root>
<!--指定某子日志对象(需要记录日志 的类名)的日志级别-->
<!--<logger name ="FrstRightFactory" additivity ="false">
<level value ="DEBUG"></level>
</logger>-->
</log4net>
</configuration>
2.修改global.asax
[assembly:log4net.Config.XmlConfigurator(Watch=true)]
void Application_Start(object sender,EventArgs e)
{
//增加内容 start
string s = Server.MapPath("log4net.config");
System.IO.FileInfo info = new System.IO.FileInfo(s);
log4net.Config.XmlConfigurator.Configure(info);
//增加内容 end
}
3.使用log4net.
在类中定义静态成员变量log
private static readonly ILog log = LogManager.GetLogger(typeof(my_class).Name);
在类的方法中使用log 方法 ,如下
if (log.IsDebugEnabled)
{
log.Debug("sfsag");
}