1:首先添加log4net的使用
打开程序包控制台,输入Install-Package log4net,下载;
2:添加log4net配置文件:
这个log4net.config配置文件
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<!--错误日志配置-->
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="App_Log\"/>
<!--文件路径-->
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="100"/>
<param name="MaxFileSize" value="10240"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="\\yyyy\\MM\\yyyyMMdd-HH'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n "/>
</layout>
</appender>
<!--信息日志配置-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="App_Log\"/>
<!--文件路径-->
<param name="AppendToFile" value="true"/>
<param name="MaxFileSize" value="10240"/>
<param name="MaxSizeRollBackups" value="100"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="\\yyyy\\MM\\yyyyMMdd-HH'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%x] %n%m %n"/>
</layout>
</appender>
<!--控制台-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline"/>
</layout>
</appender>
<!--log4net.LogManager.GetLogger("logerror")用这个来选择这种类型-->
<logger name="logerror">
<level value="ERROR"/>
<appender-ref ref="ErrorAppender"/>
</logger>
<!--log4net.LogManager.GetLogger("loginfo")用这个来选择这种类型-->
<logger name="loginfo">
<level value="INFO"/>
<appender-ref ref="InfoAppender"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="InfoAppender"/>
<appender-ref ref="ConsoleAppender"/>
</root>
</log4net>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
3:在增加一个类来具体控制:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace testaAutoFac.Exentons
{
public class LogHelper
{
private LogHelper()
{
}
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); //选择<logger name="loginfo">的配置
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); //选择<logger name="logerror">的配置
/// <summary>
/// 默认配置。按配置文件
/// </summary>
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
/// <summary>
/// 手动设置,作用未知
/// </summary>
/// <param name="configFile"></param>
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}
/// <summary>
/// 写信息。
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
/// <summary>
/// 写日志。出错时会写入
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(Application_Start, se);
}
}
}
}
数据初始化:
log4net.Config.XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("~/log4net.config")));//放在gloax.cshx app_start
public void Application_Error(Object sender, EventArgs e)
{
Exception objExp = HttpContext.Current.Server.GetLastError();
Exentons.LogHelper.WriteLog("\r\n客户机IP:" + Request.UserHostAddress
+ "\r\n错误地址:" + Request.Url
+ "\r\n异常信息:" + Server.GetLastError().Message, objExp);
}