log4net日志库的基本使用

日志在大型软件开发过程中扮演着不可或缺的角色,开发者经常使用它对系统进行调试和监控。
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();
}
}
}

评论