使用
把Log4Net.Dll复制到项目的根目录下,然后添加Log4Net的引用。
在web.config文件中新增引用
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
...
增加一个写日志文件的类 loghelper.cs
using log4net;
using System;
public static class LogFactory
{
/// <summary>
/// 错误日志的标签
/// </summary>
public const string Error = "ErrorLogger";
/// <summary>
/// 日志记录的标签
/// </summary>
public const string Info = "InfoLogger";
/// <summary>
/// 初始化
/// </summary>
public static void LogInitialize()
{
string config = "~/log4net.config";
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(System.Web.HttpContext.Current.Server.MapPath(config)));
Log4NetHelper.Info("测试日志!!!!");
}
}
/// <summary> 日志辅助类 log4net
/// </summary>
public static class Log4NetHelper
{
/// <summary> 错误日志
/// </summary>
/// <param name="msg"></param>
public static void Error(string msg)
{
var log = LogManager.GetLogger(LogFactory.Error);
log.Error(msg);
}
/// <summary> 错误日志,带异常
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Error(string msg, Exception ex)
{
var log = LogManager.GetLogger(LogFactory.Error);
log.Error(msg, ex);
}
/// <summary> 日志记录
/// </summary>
/// <param name="msg"></param>
public static void Info(string msg)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.Info(msg);
}
/// <summary> 日志记录
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Info(string msg, Exception ex)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.Info(msg, ex);
}
/// <summary> Debug日志记录
/// </summary>
/// <param name="msg"></param>
public static void Debug(string msg)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.Debug(msg);
}
/// <summary> Debug日志记录
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Debug(string msg, Exception ex)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.Debug(msg, ex);
}
/// <summary> Format日志记录
/// </summary>
/// <param name="format"></param>
/// <param name="arg0"></param>
public static void Format(string format, object arg0)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.InfoFormat(format, arg0);
}
/// <summary> Format日志记录
/// </summary>
/// <param name="format"></param>
/// <param name="arg0"></param>
/// <param name="arg1"></param>
public static void Format(string format, object arg0, object arg1)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.InfoFormat(format, arg0, arg1);
}
/// <summary> Format日志记录
/// </summary>
/// <param name="format"></param>
/// <param name="arg0"></param>
/// <param name="arg1"></param>
/// <param name="arg2"></param>
public static void Format(string format, object arg0, object arg1, object arg2)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.InfoFormat(format, arg0, arg1, arg2);
}
/// <summary> Format日志记录
/// </summary>
/// <param name="format"></param>
/// <param name="provider"></param>
/// <param name="args"></param>
public static void Format(IFormatProvider provider, string format, params object[] args)
{
var log = LogManager.GetLogger(LogFactory.Info);
log.InfoFormat(provider, format, args);
}
}
在项目的根目录中配置一份log4net.config文件。
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Log/cq.log"/>
<param name="datePattern" value="YY-MM-dd HH:mm"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\cq"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="_yyyyMMdd'.log'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<!--<level value="ERROR" />-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
将这个文件的属性页打开,高级->复制到输出目录->始终复制。在这个文件中可以配置很多的appender的信息,这里是按照日期切换文件。
在Global.asax文件中,增加初始化逻辑。
LogFactory.LogInitialize();
日志:
Log4NetHelper.Info(String.Format("LoginCheck uid: {0}", uid));