零基础WPF使用NLog记录日志

使用步骤:

1、NuGet安装NLog.conf包即可,这个包会同时安装其他的依赖包;

2、修改NLog.conf的配置,配置参数参考:NLog详解-CSDN博客

复制代码
<?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"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <variable name="myvar" value="myvalue"/>
  <targets>
  <!-- 写入文件的配置 -->
	<target name="info_file" xsi:type="File"
				fileName="${basedir}/logs/info_file.txt"
				archiveFileName="${basedir}/logs/info_file.{###}.txt"
				archiveEvery="Day"
				archiveNumbering="DateAndSequence"
				archiveAboveSize="10000000"
				maxArchiveFiles="90"
				keepFileOpen="true"
				layout="${longdate} ${uppercase:${level}} ${message} ${exception:stacktrace}" />
				
	

  </targets>

  <rules>
      <!-- 记录的级别 -->
    <logger name="*" minlevel="Info" writeTo="info_file" />
   
  </rules>
</nlog>

3、新建一个日志的类,后续方便统一使用打印

复制代码
using System;
using System.Collections.Generic;
using NLog;

namespace XXX项目的命令空间XXX
{
    internal class LoggerHelper
    {
        public static Logger logger = LogManager.GetCurrentClassLogger(); //初始化日志类

       /// <summary>
       /// 
       /// </summary>
       /// <param name="errorFile">错误源文件</param>
       /// <param name="errorMsg">错误消息</param>
       /// <param name="errorFunc">错误函数</param>
        public static void Logger_Debug(string errorFile,string errorMsg ,string errorFunc="")
        {
            string errorStr="调试源文件:《"+errorFile+"》,调试源函数:["+errorFunc+ "],调试信息:" + errorMsg;
            logger.Debug(errorStr);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="errorFile">错误源文件</param>
        /// <param name="errorMsg">错误消息</param>
        /// <param name="errorFunc">错误函数</param>
        public static void Logger_Info(string errorFile, string errorMsg, string errorFunc = "")
        {
            string errorStr = "源文件:《" + errorFile + "》,源函数:[" + errorFunc + "],信息:" + errorMsg;
            logger.Info(errorStr);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="errorFile">错误源文件</param>
        /// <param name="errorMsg">错误消息</param>
        /// <param name="errorFunc">错误函数</param>
        public static void Logger_Warn(string errorFile, string errorMsg, string errorFunc = "")
        {
            string errorStr = "警告源文件:《" + errorFile + "》,警告源函数:[" + errorFunc + "],警告信息:" + errorMsg;
            logger.Warn(errorStr);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="errorFile">错误源文件</param>
        /// <param name="errorMsg">错误消息</param>
        /// <param name="errorFunc">错误函数</param>
        public static void Logger_Error(string errorFile, string errorMsg, string errorFunc = "")
        {
            string errorStr = "错误源文件:《" + errorFile + "》,错误源函数:[" + errorFunc + "],错误信息:" + errorMsg;
            logger.Error(errorStr);
        }
    }
}
相关推荐
Lost of 程序猿12 小时前
用 YARP 为 .NET 微服务搭一座“立交桥“:路由转发与生产配置实践
c#·asp.net
点纭15 小时前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#
用户7884773163415 小时前
用 .NET MAUI 一套 C# 同时出 Windows 和 Android:哪些是真能共享,哪些是 marketing
c#
Lost of 程序猿17 小时前
用 Quartz.NET 优雅地处理 .NET 定时任务:从选型到 Docker 部署全记录
后端·c#·asp.net
林川~011 天前
Unity 万能物理检测工具:射线检测 / 范围检测 / 层级过滤 / 编辑器可视化(可直接拿去用)
游戏·unity·c#·射线检测·通用工具
He BianGu1 天前
【WPF-VisionMaster】机器视觉通用平台V5.0版本发行说明
opencv·c#·wpf·halcon·机器视觉·visionmaster
tang_04271 天前
【Hi.Ltd 专题】第9期:Interop 配置互操作(JSON/INI/XML/YAML/注册表/扫码)
经验分享·c#·hi.ltd系列
tang_04272 天前
【Hi.Ltd 专题】第7期:Threading 采集线程、锁与 LRU 缓存
经验分享·c#·hi.ltd系列
A_nanda2 天前
C# 界面卡顿:从定位到根治
c#
2501_930707782 天前
使用C#代码为新创建的 Word 文档创建目录
c#·word