文章目录
.Net日志组件之NLog的使用和配置
1、新建.Net8控制台项目
2、Nuget安装NLog组件
install-package NLog.Extensions.Logging
3、添加配置文件nlog.config
4、右键文件nlog.config,修改属性为“始终复制 or 较新则复制”
5、编写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>
<!--此部分中的所有目标将自动异步-->
<default-wrapper xsi:type="AsyncWrapper"></default-wrapper>
<!--type:日志输出类型 File:文件 ColoredConsole:控制台-->
<!--fileName:日志存储的路径及名称-->
<!--layout:日志输出格式-->
<!-- archiveFileName:要用于存档的文件的名称 可以指定日志 -->
<!-- archiveAboveSize:以字节为单位的大小,超过该大小的日志文件将被自动存档 -->
<!-- archiveNumbering:对文件档案进行编号的方式 -->
<!-- concurrentWrites:当使用keepFileOpen = true时,支持从同一机器主机上的多个进程优化并发写入同一日志文件。通过使用一种特殊的技术,它可以让文件从多个进程中打开。如果只有单个进程(和单个 AppDomain)应用程序正在记录日志,那么设置为concurrentWrites = False会更快。 -->
<!-- keepFileOpen:指示是否在每次记录事件时保持日志文件打开,将此属性更改为 true 将大大提高性能,但也会保持文件句柄锁定。启用此选项时,请考虑设置openFileCacheTimeout = 30,因为它将允许存档操作并对被删除的日志文件做出反应。 -->
<!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
<target name="info_file" xsi:type="File"
fileName="${basedir}/Logs/${shortdate}/info_${shortdate}.txt"
layout="${longdate} | ${event-properties:item=EventId_Id:whenEmpty=0} | ${uppercase:${level}} | ${logger} | ${message} ${exception:format=tostring}"
archiveFileName="${basedir}/archives/info_${shortdate}-{#####}.txt"
archiveAboveSize="102400"
archiveNumbering="Sequence"
concurrentWrites="true"
keepFileOpen="false" />
<target name="error_file" xsi:type="File"
fileName="${basedir}/Logs/${shortdate}/error_${shortdate}.txt"
layout="${longdate} | ${event-properties:item=EventId_Id:whenEmpty=0} | ${uppercase:$