修改NLog配置文件参数的方法

目录

一、背景

二、NLog配置文件

 三、C#代码

四、验证结果

​ 五、总结


一、背景

最近项目中要用到NLog记录日志,有一个要求是可以灵活地修改日志文件的存放位置,琢磨了一小会,发现可以使用XML文件的形式修改文件的参数,现将方法逐一讲解。

二、NLog配置文件

NLog配置文件(即名为NLog.config的文件)的内容如下面所示,要将日志文件的存放由D:/Data/logs/All/改为E:/Data/logs/All,对应变量的名称是logDirectory。(代码直接复制下来就可以用)

<?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"autoReload="true" throwExceptions="false" internalLogLevel="Off"><!--定义变量logDirectory,变量的值可以通过${varname}语法插入到属性值中。一个变量值甚至可以用来定义另一个变量的值。--><variable name="logDirectory" value="D:/Data/logs/All/"/><!--定义日志目标/输出--><targets async="true"  keepFileOpen="false"><!-- to limit per file max size: archiveAboveSize="5000000"--><default-target-parameters xsi:type="File" layout="${longdate}|${level:uppercase=true}|${logger}|${threadid}|${message}|${exception:format=tostring}" encoding="utf-8" /><!--name表示目标的名称,xsi:type表示日志的输出类型,fileName表示日志文件的路径--><target name="MinTarget" xsi:type="File" fileName="${logDirectory}/${date:format=yyyyMMdd}.txt" /></targets><rules><!--*表示所有日志记录器,minlevel表示输出日志的最低级别,maxlevel表示输出日志的最大级别,writeTo表示输出日志到指定的目标--><logger name="*" minlevel="Debug" maxlevel="Fatal" writeTo="MinTarget" /></rules>
</nlog>

 三、C#代码

关键代码如下面所示,先将NLog配置文件当作XML文件加载进来,然后修改日志文件的存放位置,之后保存配置文件,最后生效NLog的配置参数。(代码直接复制下来就可以用)

            Logger logger=LogManager.GetCurrentClassLogger();logger.Info("未修改日志文件路径前");//NLog配置文件string fileName = "NLog.config";XmlDocument document = new XmlDocument();document.Load(fileName);XmlNamespaceManager nsmgr = new XmlNamespaceManager(document.NameTable);//给命名空间定义别名nsmgr.AddNamespace("n", "http://www.nlog-project.org/schemas/NLog.xsd");//使用XPath语法查找指定元素XmlNode node = document.SelectSingleNode("//n:variable[@name='logDirectory']", nsmgr);//修改日志文件的存放位置node.Attributes["value"].Value = @"E:/Data/logs/All";//保存xml文档document.Save(fileName);//生效Nlog配置参数LogManager.Configuration = new XmlLoggingConfiguration("NLog.config");//记录日志logger.Debug("This is a debug message.");logger.Info("This is an info message.");logger.Warn("This is a warning message.");logger.Error("This is an error message.");

四、验证结果

未修改日志存放位置前,日志往往会保存到D:/Data/logs/All/这个目录下,验证OK。

修改日志存放位置后,日志即刻保存到 E:/Data/logs/All这个目录下,验证OK。

 五、总结

通过XML文件的形式可以修改配置文件的参数,文件内的其他参数都可以使用这种方法进行修改,配置文件修改完成后将文件保存并更新配置才能生效。

            //保存xml文档document.Save(fileName);//生效Nlog配置参数LogManager.Configuration = new XmlLoggingConfiguration("NLog.config");

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

向量相似性度量的常用方法

向量相似性度量的常用方法 0. 引言1. 欧氏距离(Euclidean distance)2. 余弦相似度(Cosine similarity)3. 汉明距离(Hamming distance)4. 点积相似度 (Dot Product Similarity)5. 曼哈顿距离 (Manhattan Distance) 0. 引言 今天花时间学习学习向量相似性度量的常用方法&#xf…

Linux 安装Nginx (Nginx-1.25.4)

一、下载Nginx安装包 1.服务器联网的情况下&#xff0c;使用wget命令把Nginx安装包下载到/usr/local/目录中&#xff0c;如果没有wget命令&#xff0c;需要先安装&#xff1a;yum install -y wget cd /usr/local wget -c https://nginx.org/download/nginx-1.25.4.tar.gz ng…

CrossOver 24 Mac 中文破解版 CrossOver 2024激活码 crossover虚拟机 mac上运行windows 软件

CrossOver在Mac上本机运行。这意味着您不必运行Windows的副本。这意味着您不会为同时运行的两个操作系统支付RAM和CPU代价。这意味着没有陷入困境&#xff0c;波涛汹涌的表现。如果您需要原生速度&#xff0c;该软件是更好的选择。 安装后&#xff0c;像安装任何Mac应用程序一…

2024.3.17 机器学习周报

引言 Abstract 文献阅读 1、题目 R-TRANSFORMER: RECURRENT NEURAL NETWORK ENHANCED TRANSFORMER 2、引言 递归神经网络长期以来一直是序列建模的主要选择。然而&#xff0c;它严重遭受两个问题&#xff1a;在捕获非常长期的依赖性和无法并行化的顺序计算过程中无能为力…

2024 Python3.10 系统入门+进阶(一):Python编程基础

目录 一、编程语言是什么二、编译型语言和解释型语言的区别2.1 编译型语言2.2 解释型语言 三、Python是什么四、Python有哪些优点和缺点&#xff1f;4.1 Python的优点4.2 Python 的缺点 五、学Python能干什么&#xff0c;Python的应用领域有哪些&#xff1f;六、怎样学习Python…

HSCCTF-2024-Crypto 复现

文章目录 EZ_MATHSTAR_CHASING_DIARYRSATESTYOUQU 复现参考来源&#xff1a; lazzzaro佬写的题解 EZ_MATH 题目描述&#xff1a; from Crypto.Util.number import *flag HSCCTF{*****************************************} x bytes_to_long(flag.encode()) y getPrime(2…

监视和内存观察

监视和内存观察 5.监视和内存观察5.1 监视5.2 内存 5.监视和内存观察 在调试的过程中我们&#xff0c;如果要观察代码执行过程中&#xff0c;上下文环境中的变量的值&#xff0c;有哪些方法呢&#xff1f; 这些观察的前提条件一定是开始调试后观察&#xff0c;比如&#xff1…

腾讯云2核4G服务器可以有多大访问量?吓人!

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户同时在1秒内打开网站&#xff0c;并发数为10&#xff0c;经阿腾云测试&a…

使用pgadmin备份数据库

本人菜鸟&#xff0c; 在使用PostgreSQL数据库的时候&#xff0c; 经常会用到这个pgadmin的可视化工具 这个工具提供了很简单的备份和还原方法&#xff0c; 操作如下 备份 (1)首先鼠标右键选中你要备份的数据库&#xff0c;如图的 LBSYS (2)然后点击 backup &#xff08;…

“智慧农业新篇章:AI大模型引领生态与气象科研的未来“

AI大模型引领未来智慧科研暨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用 以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数…

数学建模--MATLAB基本使用

1.线性方程组 这个是一个线性方程组&#xff08;属于线性代数的范畴&#xff09;&#xff0c;Axb类型的方程&#xff0c;如果使用MATLAB进行求解&#xff0c;就需要分别表示A矩阵&#xff08;线性方程组未知数前面的系数&#xff09;&#xff0c;b矩阵&#xff08;表示等式右边…

体系班第十七节(经典递归)

1汉诺塔 从左移到最右&#xff0c;圆盘必须满足小压大原则 写一个大方法&#xff0c;大方法包括两步&#xff1a;第一步将最后一个圆盘上面的所有的放到第二个塔上面&#xff0c;然后将最后一个圆盘放到最后塔上面&#xff0c;再把第二个塔上面圆盘全放在第三个塔上面 #incl…

IO流(5)——转换流

不同编码读取出现乱码的问题 解决方法 字符输入转换流&#xff08;InputStreamReader&#xff09;

泰克Tektronix TDP1000高压差分探头

181/2461/8938产品概述&#xff1a; TDP1000、TDP0500和P6251高压差分探头提供当今开关电源&#xff08;SMPS&#xff09;、CAN/LIN总线和高速数字系统设计所需的出色高速电气和机械性能。 关键性能规格 1 GHz和500 MHz探头带宽<1 pF differential input capacitance1mω…

Postman-Installation has failed

如图&#xff1a; 解决方法&#xff1a; 打开文件夹 Postman-win64-Setup 点击Postman.exe 即可

解压即用,2024最简单好用AI开源换脸应用,整合包已备好

软件整合包&#xff1a;点击下载 关键词&#xff1a;#AI换脸 #开源应用 #可视化界面 #实时换脸 #高清修复 #多个模型 #人脸遮挡处理 #模糊修复 #性能优化 #操作简单 总结&#xff1a;本软件是一款2024年最强大、最易用的AI换脸开源应用。该应用界面经过汉化&#xff0c;操作简…

3D Occupancy 预测冠军方案:FB-OCC

文章结尾有视频和连接 背景知识 Occupancy 更像是一个语义分割任务&#xff0c;但是它是 3D 空间的语义分割它的我们对 Occupancy 分自己的期望是它能够具有通用的这种目标建模的能力&#xff0c;才能够不是不受制于这种目标框这种几何的矩形的这种约束而能够建模任意形状的这…

零信任SDP是什么,有什么作用

物理边界曾经是可信网络和不可信网络之间的有效分割。防火墙通常部署于网络的边缘&#xff0c;基于静态策略来限制网路流量。位于防火墙内部的用户会被授予较高信任等级来访问企业的敏感资源&#xff0c;因为他们被默认是可信的。 然而随着云计算、移动互联、物联网、人工智能…

JavaSE-----认识异常【详解】

目录 一.异常的概念与体系结构&#xff1a; 1.1异常的概念&#xff1a; 1.2一些常见的异常&#xff1a; 1.3异常的体系结构&#xff1a; 1.4异常的分类&#xff1a; 二.异常的处理机制&#xff1a; 2.1 抛出异常&#xff1a; 2.2异常的捕获&#xff1a; 2.3try-catch-&…

【模拟string函数的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 模拟string函数的实现 浅拷贝 深拷贝 vs和g下string结构的说明 总结 前言 模拟string函数的实现 浅拷贝 深拷贝 总结 前言 世上有两种耀眼的光芒&#…