WPF 消息日志打印帮助类:HandyControl+NLog+彩色控制台打印

文章目录

  • 前言
  • 相关文章
  • Nlog配置
  • HandyControl配置
  • 简单使用
    • 显示效果
    • 文本内容

前言

我将简单的HandyControl的消息打印系统和Nlog搭配使用,简化我们的代码书写

相关文章

.NET 控制台NLog 使用

WPF-UI HandyControl 控件简单实战

C#更改控制台文字输出颜色

Nlog配置

这里安装这个文章配置就行了,但是彩色控制台打印需要修改一下,Console.Colorful官网好像被占用了,只能用原生的方法改颜色了

在这里插入图片描述

.NET 控制台NLog 使用

C#更改控制台文字输出颜色

using NLog.Config;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WpfApp1.Utils
{public static class NLogHelper{private static Logger logger;static NLogHelper(){LogManager.Configuration = new XmlLoggingConfiguration(string.Format("{0}/NLog.config", AppDomain.CurrentDomain.BaseDirectory.ToString()));logger = NLog.LogManager.GetCurrentClassLogger();}public static void Debug(string msg){Console.WriteLine(msg);logger.Debug(msg);}public static void Info(string msg){ConsoleWirte(msg,ConsoleColor.Green);logger.Info(msg);}public static void Error(string msg){ConsoleWirte(msg, ConsoleColor.Red);logger.Error(msg);}public static void Warning(string msg){ConsoleWirte(msg, ConsoleColor.Yellow);logger.Warn(msg);}public static void ConsoleWirte(string msg,ConsoleColor color){Console.ForegroundColor = color;Console.WriteLine(msg);Console.ResetColor();}}
}

HandyControl配置

修改了一下HandyControl的打印逻辑

using HandyControl.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WpfApp1.Utils
{public static class MsgHelper{public enum MsgType { Info, Warn, Error, Success, Fatal }/// <summary>/// 打印消息/// </summary>/// <param name="msg"></param>/// <param name="type"></param>/// <param name="isGlobal"></param>public static void ShowMsg(string msg, MsgType type, bool isGlobal = false){if (isGlobal){switch (type){case MsgType.Info:NLogHelper.Info(msg);Growl.InfoGlobal(msg);break;case MsgType.Warn:NLogHelper.Warning(msg);Growl.WarningGlobal(msg);break;case MsgType.Error:NLogHelper.Error(msg);Growl.ErrorGlobal(msg);break;case MsgType.Success:NLogHelper.Info(msg);Growl.SuccessGlobal(msg);break;case MsgType.Fatal:NLogHelper.Error(msg);Growl.FatalGlobal(msg);break;}}else{switch (type){case MsgType.Info:NLogHelper.Info(msg);Growl.Info(msg);break;case MsgType.Warn:NLogHelper.Warning(msg);Growl.Warning(msg);break;case MsgType.Error:NLogHelper.Error(msg);Growl.Error(msg);break;case MsgType.Success:NLogHelper.Info(msg);Growl.Success(msg);break;case MsgType.Fatal:NLogHelper.Error(msg);Growl.Fatal(msg);break;}}}/// <summary>/// 询问回调/// </summary>/// <param name="msg"></param>/// <param name="callback"></param>/// <param name="isGlobal"></param>public static void Ask(string msg, Action<bool> callback, bool isGlobal = false){NLogHelper.Info(msg);if (isGlobal){Growl.AskGlobal(msg, isConfrimed =>{callback(isConfrimed);return true;});}else{Growl.Ask(msg, isConfrimed =>{callback(isConfrimed);return true;});}}/// <summary>/// 强制清空全部消息/// </summary>public static void CleanAll(){Growl.Clear();Growl.ClearGlobal();}}
}

简单使用

在这里插入图片描述

显示效果

在这里插入图片描述

文本内容

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

macos管理本地golang的多版本sdk

背景 无论你是哪个编程语言的开发者&#xff0c;例如 Java、Go 等&#xff0c;通常在本地开发过程中&#xff0c;你经常需要安装相应的 SDK。由于各种原因&#xff0c;往往需要在不同的项目中来回切换多个版本的 SDK。 安装步骤 1.安装homebrew /bin/bash -c "$(curl -…

vue中 ref 和 reactive 的区别与联系

官方原文&#xff1a;Vue3 建议使用 ref() 作为声明响应式状态的主要API。 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;和引用数据类型(对象) 转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。reactive 用于…

什么是数据可视化?数据可视化的流程与步骤

前言 数据可视化将大大小小的数据集转化为更容易被人脑理解和处理的视觉效果。可视化在我们的日常生活中非常普遍&#xff0c;但它们通常以众所周知的图表和图形的形式出现。正确的数据可视化以有意义和直观的方式为复杂的数据集提供关键的见解。 数据可视化定义 数据可视化…

编译时AndroidX冲突报错

一、报错信息 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task :app:checkDebugDuplicateClasses.at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.jav…

UBX M8T-10 DSP开发和NMEA解析

特殊名词&#xff1a; l 惯性导航 (DR) 解决方案采用惯性传感器&#xff08;陀螺仪和加速计&#xff09;来辅助 GNSS 定位技术。 l 无约束惯性导航 (UDR) 解决方案持续测量与监测车辆加速度及其方向变化&#xff0c;再通过传感器融合技术将测量数据与 GNSS 数据进行整合&#…

Web期末复习知识点

1、掌握tomcat服务器的安装和配置参数 下载Tomcat&#xff1a;前往Apache Tomcat官方网站&#xff08;https://tomcat.apache.org&#xff09;下载适合您操作系统的Tomcat版本。 安装Tomcat&#xff1a;解压下载的Tomcat压缩文件到您选择的目录。例如&#xff0c;将Tomcat解压…

PYTHON基础:最小二乘法

最小二乘法的拟合 最小二乘法是一种常用的统计学方法&#xff0c;用于通过在数据点中找到一条直线或曲线&#xff0c;使得这条直线或曲线与所有数据点的距离平方和最小化。在线性回归中&#xff0c;最小二乘法被广泛应用于拟合一条直线与数据点之间的关系。 对于线性回归&…

从企业级负载均衡到云原生,深入解读F5

上世纪九十年代&#xff0c;Internet快速发展催生了大量在线网站&#xff0c;Web访问量迅速提升。在互联网泡沫破灭前&#xff0c;这个领域基本是围绕如何对Web网站进行负载均衡与优化。从1997年F5发布了BIG-IP&#xff0c;到快速地形成完整ADC产品线&#xff0c;企业级负载均衡…

51单片机(STC8)-- 串口配置及串口重定向(printf)

文章目录 STC8串口概述串口寄存器配置串口1控制寄存器SCON串口1数据寄存器SBUF串口1模式 1工作方式串口1波特率计算方式 串口注意事项串口1通信demo串口重定向 STC8串口概述 由下图可知STC8H3K64S4带有4个4个串行通信接口&#xff0c;芯片名后两位S所带的数字即代表这款芯片带…

echarts自定义鼠标移上去显示,自定义图例,自定义x轴显示

提示&#xff1a;记录一下echarts常用配置,以免后期忘记 1.自定义鼠标移上去效果 tooltip: { show: true, trigger: "axis", axisPointer: { type: "shadow",//默认自定义效果 }, // //自定义鼠标移上去效果 formatter: (v) > { console.log("打印…

C++回调函数-实操(二)

回调通常通过函数指针、函数对象&#xff08;仿函数&#xff09;、Lambda 表达式或者 std::function 来实现。 1、函数指针实现回调 这一方法实现回调比较好记&#xff0c;就记住把函数当作参数传给方法&#xff0c;在方法中调用方法。 #include <iostream>// 回调函数…

IDEA使用之打包Jar,指定main方法

前言 在某些场景&#xff0c;可能会遇到将非Spring项目打包的情况&#xff0c;我们不需要Tomcat服务器部署&#xff0c;只需要执行指定的main方法即可&#xff0c;这种情况打包成jar就比较方便了。 操作步骤 打包结果默认在项目的out目录下 使用 java -jar xxx.jar

qiankun(乾坤)微前端框架简介

qiankun&#xff08;乾坤&#xff09;微前端框架简介 最近在搞微前端项目&#xff0c;接下来整体介绍一下微前端。 在现代 Web 应用程序开发中&#xff0c;微前端架构逐渐成为一种趋势&#xff0c;它可以帮助我们更好地管理和组织复杂的项目。qiankun&#xff08;乾坤&#xf…

关于:网络安全

网络安全是指保护网络系统及其相关设备免受未经授权访问、使用、破坏、更改、泄露和破坏的活动的过程。随着互联网的迅速发展&#xff0c;网络安全问题也越来越突出&#xff0c;已成为全球范围内的一个重要议题。本文将详细探讨网络安全的定义、重要性、常见威胁、防御措施和未…

Vue - 优雅地处理点击事件:预置防抖

在实际开发中&#xff0c;常常需要处理用户输入和交互&#xff0c;而点击事件是其中之一。在某些场景下&#xff0c;我们希望点击事件不会被过于频繁触发&#xff0c;以提高性能或防止不必要的操作。在本篇博客中&#xff0c;我们将探讨如何使用 Vue.js 结合 Lodash 库中的防抖…

Python 爬虫之下载歌曲(二)

获取深夜emo云歌单信息 文章目录 获取深夜emo云歌单信息前言一、基本流程二、代码编写1.基本要素代码2.获取歌名和链接信息3.获取歌曲的作者信息4.将上面三个列表遍历保存 三、效果展示 前言 换个平台&#xff0c;爬歌深夜网抑云平台的歌单的相关信息&#xff0c;关于作者、歌…

阿里云OpenSearch-LLM智能问答故障的一天

上周五使用阿里云开放搜索问答版时&#xff0c;故障了一整天&#xff0c;可能这个服务使用的人比较少&#xff0c;没有什么消息爆出来&#xff0c;特此记录下这几天的阿里云处理过程&#xff0c;不免让人怀疑阿里云整体都外包出去了&#xff0c;反应迟钝&#xff0c;水平业余&a…

【JavaWeb学习笔记】16 - JSon和Ajax

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/json https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/ajax 目录 〇、官方文档 一、JSon 1.JSon介绍 2.JSon快速入门 3.JSON对象和字符串对象转换 1.应用案例 2.注意事项和细节 …

html table可编辑表格数据实现删除

这里教大家使用纯html和js脚本结合实现删除表格数据 <!DOCTYPE html> <html> <head><style>table {border-collapse: collapse;width: 100%;}th, td {border: 1px solid black;padding: 8px;text-align: left;}</style> </head> <body…

人工智能_机器学习077_Kmeans聚类算法_亚洲国家队自动划分类别_3维可视化实现---人工智能工作笔记0117

然后我们上一节使用聚类算法对,2006年世界杯,2010年世界杯,2007年亚洲杯,足球队进行了自动类别划分,然后 这一节,我们使用代码对,聚类算法的划分结果,进行一下可视化 plt.figure(figsize=(12,9)) 首先指定画布大小 ax=plt.subplot(111,projection=3d) 然后指定111,表示画布的,…