Log4net 教程

一、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

  1. 首先使用VS2017创建一个基于C#的控制台应用程序,项目名称为:Log4netTutorial
  2. 添加log4net项目依赖,
    在log4net项目中,【引用】-> 鼠标右键单击 -> 【管理 NuGet 程序包(N)】,或者点击【项目】菜单 -> 【管理 NuGet 程序包(N)】,
    然后在左边的【浏览】Tab页中,输入log4net,然后安装即可。截止2023年12月23日log4net的最新版本为:2.0.15。如下图所示
    安装Log4net程序包

添加log4net依赖之后,packages.config文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="log4net" version="2.0.15" targetFramework="net461" />
</packages>
  1. 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>
  1. 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();
        }
    }
}

运行上述程序,运行结果如下图所示:
程序运行结果

三、参考资料

相关推荐

  1. 关于 log4net 日志功能使用方法

    2023-12-25 13:24:02       27 阅读
  2. 【日志】log4net 日志不能输出

    2023-12-25 13:24:02       18 阅读
  3. .NET 7(C#)配置使用log4net日志框架的方法

    2023-12-25 13:24:02       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-25 13:24:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-25 13:24:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-25 13:24:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-25 13:24:02       20 阅读

热门阅读

  1. sklearn网格搜索找寻最优参数

    2023-12-25 13:24:02       40 阅读
  2. 常用git指令

    2023-12-25 13:24:02       35 阅读
  3. 2023年底和2024年节假日及补班日期

    2023-12-25 13:24:02       95 阅读
  4. 门面设计模式

    2023-12-25 13:24:02       36 阅读
  5. Linux系统中跟TCP相关的内核参数

    2023-12-25 13:24:02       37 阅读
  6. vscode windows下 tasks.json 和 launch.json

    2023-12-25 13:24:02       37 阅读
  7. SQL分类

    SQL分类

    2023-12-25 13:24:02      31 阅读
  8. mysql全局事务变量GTID

    2023-12-25 13:24:02       25 阅读
  9. leetcode 131. 分割回文串

    2023-12-25 13:24:02       37 阅读