当前位置: 首页 > article >正文

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


http://www.kler.cn/a/228884.html

相关文章:

  • 安装httpd
  • 如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南
  • 什么是长连接?Netty如何设置进行长连接?
  • 向harbor中上传镜像(向harbor上传image)
  • 服务器迁移MySQL
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 李沐深度学习-模型构造相关文档
  • 突破编程_C++_面试(基础知识(7))
  • 嵌入式系统设计师之文件系统(3.2.5)
  • 学成在线:媒体资源管理系统(MAM)
  • 数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)
  • 编译器的实用调试技巧
  • 一分钟了解电脑关机快捷键是什么!
  • 如何以管理员身份删除node_modules文件
  • 思科模拟器实验合集
  • elastic-job VS xxl-job
  • (22)删除指定的数
  • 【UE 材质】扇形材质
  • 事件在状态流程图中的工作方式
  • 黑群晖安装教程-——传统优盘引导制作中问题
  • flask的基本使用 token插件(二)
  • ASP.NET Core WebAPI_解决跨域问题(前端后端)
  • docker 简单项目
  • SSH免密切换服务器案例-ssh协议(公钥和私钥)
  • 【C语言】static关键字的使用
  • 【蓝桥杯选拔赛真题63】python小马过河 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析