配置文件路径"Config\\Log4Net.config"(相对执行目录)
配置文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="logerror" additivity="false">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo" additivity="false">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\\Log\\WindowsApplication1\\Error\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".htm"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\\Log\\WindowsApplication1\\Info\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".htm"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</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>
辅助类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Diagnostics;
using log4net;
namespace ClassLibrary1
{
public class Log
{
//private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// 获取调用Log类公共方法的调用者信息
/// </summary>
/// <returns></returns>
static string GetCaller()
{
// get call stack
//StackTrace stackTrace = new StackTrace();
//MethodBase mb = stackTrace.GetFrame(1).GetMethod();
MethodBase mb = new StackFrame(2).GetMethod();
Type t = mb.DeclaringType;
return String.Format("{0}.{1}", t.FullName, mb.Name);
}
public static void Default(string message)
{
ILog lg = log4net.LogManager.GetLogger("");
lg.InfoFormat("{0}:{1}", GetCaller(), message);
}
public static void Info(string message)
{
ILog lg = log4net.LogManager.GetLogger("loginfo");
lg.InfoFormat("{0}:{1}", GetCaller(), message);
}
public static void Error(string message)
{
ILog lg = log4net.LogManager.GetLogger("logerror");
lg.InfoFormat("{0}:{1}", GetCaller(), message);
}
}
}
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config\\Log4Net.config", Watch = true)]
适用于桌面应用,web应用中指定的ConfigFile的值可能需调整;配置文件里的log文件保存路径可调整为相对路径