一、Log4net 教程
在CodeProject上找到一篇关于Log4net的教程:log4net Tutorial,这篇博客的作者是:Tim Corey
,对应源代码地址为:
https://github.com/TimCorey/Log4netTutorial,视频地址为:Application Logging in C#: The log4net tutorial
另外,log4net 主页:http://logging.apache.org/log4net/
二、Log4net的使用
Logenet是一个C#的日志库,很方便我们在程序中记录日志,包括日志级别,将日志打印到控制台,或者文件中。
1、在C#控制台程序中使用log4net
- 首先使用VS2017创建一个基于C#的控制台应用程序,项目名称为:Log4netTutorial
- 添加log4net项目依赖,
在log4net项目中,【引用】-> 鼠标右键单击 -> 【管理 NuGet 程序包(N)】,或者点击【项目】菜单 -> 【管理 NuGet 程序包(N)】,
然后在左边的【浏览】Tab页中,输入log4net
,然后安装即可。截止2023年12月23日log4net
的最新版本为:2.0.15。如下图所示
添加log4net
依赖之后,packages.config
文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.15" targetFramework="net461" />
</packages>
- 在
App.config
配置文件中添加关于log4net
的相关配置如下:
App.config默认配置为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
添加log4net
配置之后的App.config
文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] %level - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
- 在
Program.cs
主程序中引用log4net
,
(1)、添加xml配置声明:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
(2)、在Program
类中创建一个log4net
的静态对象:
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
(3)、在Main
函数中使用第(2)步中的logger
对象进行日志打印:
logger.Debug("Hello lognet4 tutorial");
logger.Info("Maintenance: water pump turned on");
logger.Warn("Maintenance: the water pump is getting hot");
logger.Error("MonSysPerf.dll load error!");
logger.Fatal("explorer hung");
最终完整的Program.cs
文件如下:
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4netTutorial
{
class Program
{
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
logger.Debug("Hello lognet4 tutorial");
logger.Info("Maintenance: water pump turned on");
logger.Warn("Maintenance: the water pump is getting hot");
logger.Error("MonSysPerf.dll load error!");
logger.Fatal("explorer hung");
Console.ReadLine();
}
}
}
运行上述程序,运行结果如下图所示:
三、参考资料
- Application Logging in C#: The log4net tutorial视频地址
- log4net教程
- log4net主页
- Log4netTutorial源代码地址
- Apache log4net™ Config Examples
- Apache log4net™ SDK Refrerence