1、新建一个解决方案,取名为AloneLog
2、添加一个类库工程,取名为Log.Class
2.1 为Log.Class工程引用log4net.dll;
2.2 为Log.Class工程添加log4net.dll的引用;
2.3在AssemblyInfo.cs文件的最后添加:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)]
2.4 为Log.Class工程添加一个输出日志的类文件LogOut.cs,其内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AloneLog
{
public class LogOut
{
public static void debug(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsDebugEnabled)
{
log.Debug(message);
}
log = null;
}
public static void error(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsErrorEnabled)
{
log.Error(message);
}
log = null;
}
public static void fatal(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsFatalEnabled)
{
log.Fatal(message);
}
log = null;
}
public static void info(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
}
public static void warn(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsWarnEnabled)
{
log.Warn(message);
}
log = null;
}
}
}
2.5 编译Log.Class类库工程。
3、添加一个web 应用程序,取名为Log.Web。
3.1 为Log.Web应用程序引入Log.Class工程bin目录下的Log.Class.dll;
3.2 在web 应用程序Log.Web的配置文件web.config文件中添加log4net的配置:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup >
........
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<appSettings/>
<connectionStrings/>
<log4net>
<root>
<!--
<level value="ALL" />
<appender-ref ref="rootFile" />
-->
</root>
<logger name="LogWebEdu">
<level value="DEBUG" />
<appender-ref ref="rollingFile" />
</logger>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" type="" value="log/log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%n%d %r [%t] %-5p %c %L - %m%n" />
</layout>
</appender>
</log4net>
<system.web>
......
</system.web>
</configuration>
3.2 在需要输出日志的文件里(在此为default.aspx.cs)调用输出日志的方法,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Log.Class;
namespace Log.Web
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LogOut.debug("单独日志类测试");
}
}
}
}
除此之外,不需要再配置其它内容,原来写在一起的时候,还要在gloab.asax里添加对log4net的声明,在这个项目中我没有添加也可以输出日志文件,在web应用程序Log.Web的AssemblyInfo.cs中也没有添加对log4net的声明,只是在类库文件的AssemblyInfo.cs中添加了。
7、运行Log.Web应用程序,在Log.Web目录下会多了一个log目录,在log目录下就可以看到日志文件了,
2009-04-26 11:17:36,671 86425156 [8] DEBUG LogOut 15 - 单独日志类测试
附加:
log4net.Layout.PatternLayout中的转换模式(ConversionPattern)
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanli0823/archive/2009/04/25/4122150.aspx#FeedBack