整理了一下log4net的使用和配置
1、引用log4net.dll
在App.config中的配置
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler,log4net"/>
</configSections>
<log4net debug="true">
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<target value="Console.Error"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %5l (%F:%L) - %m%n"/>
</layout>
</appender>
<appender name="SystemRollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<file value="log/Sys/Sys"/>
<appendToFile value="true"/>
<datePattern value="yyyyMMddHHmmss".log""/>
<StaticLogFileName value="false"/>
<maxSizeRollBackups value="100"/>
<rollingStyle value="Date"/>
<encoding value="UTF-8"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<appender name="BusinessRollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<file value="log/Business/bus"/>
<appendToFile value="true"/>
<datePattern value="yyyyMMddHHmmss".log""/>
<StaticLogFileName value="false"/>
<maxSizeRollBackups value="100"/>
<rollingStyle value="Date"/>
<encoding value="UTF-8"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="BusinessRollingFile"/>
<appender-ref ref="SystemRollingFile"/>
</root>
<logger name="BusinessLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="BusinessRollingFile"/>
</logger>
<logger name="SystemLogger" additivity="false">
<level value="ERROR"/>
<appender-ref ref="SystemRollingFile"/>
</logger>
</log4net>
2、还需要在AssemblyInfo.cs中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
3、LogUtil工具类
using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
namespace MDSInterface
{
public class LogUtil
{
private static readonly ILog bizLog = LogManager.GetLogger("BusinessLogger");
private static readonly ILog log = LogManager.GetLogger("SystemLogger");
public static void Log(string message)
{
try
{
if (!bizLog.IsInfoEnabled)
{
XmlConfigurator.Configure();
}
bizLog.Info(message);
}
catch (Exception exception)
{
exception.GetType();
}
}
public static void Log(Exception exception)
{
try
{
if (!log.IsErrorEnabled)
{
XmlConfigurator.Configure();
}
log.Error(exception.Message, exception);
}
catch (Exception exception2)
{
exception2.GetType();
}
}
public static void Log(string message, Exception exception)
{
try
{
if (!log.IsErrorEnabled)
{
XmlConfigurator.Configure();
}
log.Error(message, exception);
}
catch (Exception exception2)
{
exception2.GetType();
}
}
}
}