您的位置:首页 > 其它

log4net基础应用,实现项目日志文件开启!

2017-06-21 15:47 519 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  log4net
相关文章推荐