C# Winform NLog的使用笔记

一、NLog的介绍

  NLog是一个开源的、灵活的、可扩展的日志记录库,用于.NET平台。它提供了强大的日志记录功能,可以帮助开发人员在应用程序中实现高效的日志记录和跟踪。它提供了一种简单且灵活的方式来在应用程序中记录日志信息。NLog支持多种日志目标(如文件、数据库、网络等),并且可以根据需要进行配置和扩展。它具有高性能和低内存消耗的特点,并且可以通过配置文件或代码进行灵活的日志记录设置。NLog还支持日志级别、日志过滤、日志格式化等功能,使开发人员能够根据实际需求对日志进行管理和分析。以下是NLog的一些特点和功能:

  1. 灵活性:NLog支持多种日志记录目标,包括文件、数据库、网络、控制台等。它还支持多种日志格式,如文本、XML、JSON等,可以根据需求进行配置。
  2. 可扩展性:NLog提供了丰富的扩展点和插件机制,可以轻松地集成到各种应用程序中。开发人员可以根据需要编写自定义的目标、过滤器和布局器。
  3. 高性能:NLog经过优化,具有出色的性能表现。它使用异步日志记录和缓冲区技术,可以最大程度地减少对应用程序性能的影响。
  4. 配置简单:NLog的配置文件采用XML格式,易于理解和修改。开发人员可以通过配置文件来定义日志记录规则、目标和格式,而无需修改代码。
  5. 跨平台支持:NLog不仅支持.NET Framework,还支持.NET Core和Mono等跨平台框架,可以在不同的操作系统上运行。
  6. 强大的过滤和路由功能:NLog提供了灵活的过滤器和路由规则,可以根据日志消息的级别、来源、内容等进行过滤和路由,以便将日志记录发送到不同的目标。
      总之,NLog是一个功能强大、易于使用和高性能的日志记录库,适用于各种.NET应用程序的日志记录需求。

二、NLog的安装

  使用NuGet包管理工具进行安装,安装步骤如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、NLog的配置

工程根目录下新建NLog配置文件 NLog.config

在这里插入图片描述
配置文件如下

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<targets>
		<!--此部分中的所有目标将自动异步-->
		<target name="asyncFile" xsi:type="AsyncWrapper">
			<!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
			<target name="log_file" xsi:type="File"
					fileName="${basedir}/ProjectLogs/${shortdate}/${logger}-${level}-${shortdate}.txt"
					layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
					archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
					archiveAboveSize="102400"
					archiveNumbering="Sequence"
					concurrentWrites="true"
					keepFileOpen="false" />
		</target>
		<!--使用可自定义的着色将日志消息写入控制台-->
		<target name="colorConsole" xsi:type="ColoredConsole" layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}" />
	</targets>

	<!--规则配置,final - 最终规则匹配后不处理任何规则-->
	<rules>
		<logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
		<logger name="*" minlevel="Info" writeTo="asyncFile" />
		<logger name="*" minlevel="Warn" writeTo="colorConsole" />
	</rules>
</nlog>

四、NLog的使用

测试代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using myLoggerHelper;
using NLog;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private readonly NLog.Logger logTest= LogManager.GetCurrentClassLogger();
        
        public Form1()
        {
            InitializeComponent();
            testLoge();
        }
        //test
        private void testLoge()
        {
        	//
            logTest.Debug("haha-2");
            logTest.Info("haha-2");
            logTest.Warn("haha-2");
            logTest.Error("haha-2");
            //
            Logger logTest2 = LogManager.GetLogger("log");
            logTest2.Debug("haha-3");
            logTest2.Info("haha-3");
            logTest2.Warn("haha-3");
            logTest2.Error("haha-3");



        }
    }
}

在这里插入图片描述
在这里插入图片描述


参考
链接1
链接2

相关推荐

  1. 笔记:LVM简单使用

    2024-02-06 20:56:03       37 阅读
  2. nginx使用入门笔记

    2024-02-06 20:56:03       33 阅读
  3. kafka基本使用--学习笔记

    2024-02-06 20:56:03       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 20:56:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 20:56:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 20:56:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 20:56:03       18 阅读

热门阅读

  1. 重学 VUE —— 一、创建一个应用

    2024-02-06 20:56:03       28 阅读
  2. SpringBoot 动态加载jar包,动态配置

    2024-02-06 20:56:03       28 阅读
  3. 什么是边缘计算?

    2024-02-06 20:56:03       35 阅读
  4. Spring Boot项目整合Seata AT模式

    2024-02-06 20:56:03       30 阅读
  5. c#directory 和directoryinfo的使用

    2024-02-06 20:56:03       27 阅读
  6. 微服务限流(漏桶算法、令牌桶算法)

    2024-02-06 20:56:03       35 阅读
  7. C#面:.NET Remoting 的工作原理是什么

    2024-02-06 20:56:03       36 阅读