最近一直在做C#的项目,用到log4net这个日志库,把主要代码段记录一下:
我用的DLL可以在这里下载:下载
定义一个日志管理类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net;
using log4net.Config;
using System.IO;
namespace Test
{
public static class AppLog
{
private static ILog log;
static AppLog()
{
XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "config.xml"));
log = LogManager.GetLogger(typeof(AppLog));
}
public static void Debug(object message)
{
log.Debug(message);
}
public static void DebugFormatted(string format, params object[] args)
{
log.DebugFormat(format, args);
}
public static void Info(object message)
{
log.Info(message);
}
public static void InfoFormatted(string format, params object[] args)
{
log.InfoFormat(format, args);
}
public static void Warn(object message)
{
log.Warn(message);
}
public static void Warn(object message, Exception exception)
{
log.Warn(message, exception);
}
public static void WarnFormatted(string format, params object[] args)
{
log.WarnFormat(format, args);
}
public static void Error(object message)
{
log.Error(message);
}
public static void Error(object message, Exception exception)
{
log.Error(message, exception);
}
public static void ErrorFormatted(string format, params object[] args)
{
log.ErrorFormat(format, args);
}
public static void Fatal(object message)
{
log.Fatal(message);
}
public static void Fatal(object message, Exception exception)
{
log.Fatal(message, exception);
}
public static void FatalFormatted(string format, params object[] args)
{
log.FatalFormat(format, args);
}
}
}
日志管理类的config.xml文件可以写成这样:(放在可执行文件的同级目录下)
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\logfile.log"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<datePattern value="yyyyMMdd"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<root>
<level value="All"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
记日志也很简单:例如:
AppLog.Error(ex.ToString());
生成的日志log/logfile.log类似:
2016-02-01 17:25:54,121 [10] DEBUG Sync.Utility.AppLog [(null)] - 用户登录成功!2016/2/1 17:25:54