日志在大型软件开发过程中扮演着不可或缺的角色,开发者经常使用它对系统进行调试和监控。
log4net是.NET平台上非常流行的日志库,网上零碎教程鱼龙混杂,花费良久才搭建起可用的基本框架。
本文简单介绍它的使用步骤,后续会专门写篇文章深入剖析其配置文件。
配置文件
配置文件是日志库的核心,在此可以按照日志需求定义复杂的功能。后续将深化这一部分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections>
<log4net> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <file value="C:\test.log" /> <appendToFile value="true" /> <param name="Encoding" value="UTF-8"/> <maximumFileSize value="100KB" /> <maxSizeRollBackups value="2" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message%newline" /> </layout> </appender> </log4net> </configuration>
|
工具类
在工具类中加载日志配置文件,定义写日志方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| using log4net; using log4net.Config; using System.IO; using System.Reflection;
namespace TestLog4net { public static class Log { private static readonly ILog log = LogManager.GetLogger("loginfo");
static Log() { var cpath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(cpath, "log4net.config"))); }
public static void Info(string message) { log.Info(message); } } }
|
写日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| using System;
namespace TestLog4net { internal class Program { static void Main(string[] args) { Log.Info("开始记录日志:"); for (int i = 0; i < 100; i++) { Log.Info($"{i}"); }
Console.WriteLine("日志记录完毕。"); Console.Read(); } } }
|