一、下载log4net
二、创建log4net.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"/>
</configSections>
<log4net>
<appender name="Log" type="log4net.Appender.RollingFileAppender">
<param name="File" value="SysLog\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="-1" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<param name="MaximumFileSize" value="10MB" />
<param name="RollingStyle" value="Size" />
<param name="DatePattern" value="yyyy-MM-dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d %m%n" />
</layout>
</appender>
<logger name="Log">
<level value="all" />
<appender-ref ref="Log" />
</logger>
<root>
<level value="all" />
</root>
</log4net>
</configuration>
三、写帮助类
using log4net;
using log4net.Appender;
using System;
using System.Diagnostics;
using System.IO;
namespace CheckBackFileExist
{
public class Log
{
private static readonly log4net.ILog logComm = log4net.LogManager.GetLogger("Log");
/// <summary>
/// 输出系统日志
/// </summary>
/// <param name="msg">信息内容</param>
/// <param name="source">信息来源</param>
private static void WriteLog(string msg, Action<object> action)
{
string filename = DateTime.Now.ToString("yyyy-MM-dd") + ".log";
var repository = LogManager.GetRepository();
#region MyRegion
var appenders = repository.GetAppenders();
if (appenders.Length > 0)
{
RollingFileAppender targetApder = null;
foreach (var Apder in appenders)
{
if (Apder.Name == "Log")
{
targetApder = Apder as RollingFileAppender;
break;
}
}
if (targetApder.Name == "Log")//如果是文件输出类型日志,则更改输出路径
{
if (targetApder != null)
{
if (!targetApder.File.Contains(filename))
{
targetApder.File = @"Log\" + filename;
targetApder.ActivateOptions();
}
}
}
}
#endregion
action(msg);
}
public static void Error(string msg)
{
WriteLog(msg, logComm.Error);
}
public static void Info(string msg)
{
WriteLog(msg, logComm.Info);
}
public static void Warn(string msg)
{
WriteLog(msg, logComm.Warn);
}
}
}
四、 AssemblyInfo.cs配置
- 在最后一行添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
五、 创建Global.asax文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace CheckBackFileExist
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}