NLog 使用

news2024/12/27 15:06:19

环境

.net 6.0  控制台程序

第三方库

NLog.Extensions.Logging

Microsoft.Extensions.DependencyInjection

创建 NLog 配置文件

 

记得设置始终赋值,生成到发布文件夹

<?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="NLog\all_log.log">

  <targets>
    <!--文件日志,archive相关参数:文件拆分,每100M拆分一个新文件-->
    <target xsi:type="File"
          name="all_log"
          fileName="NLog\${shortdate}\${uppercase:${level}}.log"
          layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}"
          archiveFileName="NLog\${shortdate}\${uppercase:${level}}${shortdate}.{####}.log"
          archiveNumbering="Rolling"
          archiveAboveSize="10485760"
          concurrentwrites="true"
          maxArchiveFiles="100"
              />

  </targets>


  <rules>
    <!-- add your logging rules here -->
    <!--路由顺序会对日志打印产生影响。路由匹配逻辑为顺序匹配。-->
    <logger name="Program" minlevel="Info" writeTo="all_log"  final="true"  />
    <logger name="Fenglix.*" minlevel="Info" writeTo="all_log" final="true" />
    <logger name="*" minlevel="Warn" writeTo="all_log" />
    
  </rules>
</nlog>

<rules> 是日志筛选规则 类似 c# 的 switch 语法,其中  final="true" 类似 break 匹配了才不往下走。

name="Fenglix.*"  日志源/记录者的名字,理解为执行日志代码的那个命名空间或者类 (允许使用通配符*)

日志等级说明

  • NLog支持如下几种记录等级(优先级:Trace→Debug→Info→Warn→Error→Fatal):
  1. Trace最常见的记录信息,一般用于普通输出
  2. Debug同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序
  3. Info信息类型的消息
  4. Warn警告信息,一般用于比较重要的场合
  5. Error错误信息
  6. Fatal致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。

使用方式

直接创建实例使用

 依赖注入容器使用

直接使用 NLog.LogManager 创建

 

微软自带的日志

参考 .NET Core 和 ASP.NET Core 中的日志记录 | Microsoft Learn

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

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

相关文章

骨传导运动蓝牙耳机哪个牌子好?

生命在于运动&#xff0c;每次在运动时&#xff0c;搭配上音乐&#xff0c;可以极大程度让心情更为轻松和愉悦&#xff0c;可以说骨传导蓝牙耳机是爱运动的朋友的福音&#xff0c;相较于其他耳机来说&#xff0c;佩戴稳定不用担心出现脱落的情况&#xff0c;也不会出现传统耳机…

C++ STL迭代器适配器(详解)

STL迭代器适配器 C STL迭代器适配器是什么&#xff1f; 通过学习 C STL 标准库中的容器我们知道&#xff0c;无论是序列式容器还是关联式容器&#xff08;包括哈希容器&#xff09;&#xff0c;要想遍历容器中存储的数据&#xff0c;就只能用使用该容器模板类中提供的迭代器。…

搜狗拼音占用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键

修改搜狗拼音的快捷键 右键--更多设置--属性设置--按键--系统功能快捷键--系统功能快捷键设置--取消Ctrl Shit K的勾选--勾选截屏并设置为Ctrl Shit A 微信开发者工具设置快捷键 右键--Command Palette--删除行 微信开发者工具快捷键 删除行&#xff1a;Ctrl Shit K 或…

世界上第一台无人机长啥样?

2023 世界上第一台无人机长啥样&#xff1f; 01 无人机&#xff08;英文通常为drone或unmanned aerial vehicle&#xff0c;简称为UAV&#xff09;即无人驾驶的飞机&#xff0c;是相对于载人飞机而言&#xff0c;它利用无线电遥控设备和自身的程序控制装置来完成空中的飞行任务…

通讯应用目标客户匹配,电商界都在用的营销技巧

马克扎克伯格&#xff08;Mark Zuckerburg&#xff09;对通讯应用说过一句话&#xff1a;未来是私有的。他暗示&#xff0c;社交互动的未来将在私人消息应用上。本文将帮助您使用消息应用目标客户匹配在你和现有客户之间打开一个消息应用沟通渠道。 什么是目标客户匹配&#xf…

【高危】WinRAR<6.23 远程代码执行漏洞 (CVE-2023-40477)

漏洞描述 WinRAR 是一款适用于 Windows 系统的压缩包管理器&#xff0c;其恢复卷功能用于修复损坏或丢失的压缩文件数据。 WinRAR 6.23之前版本的恢复卷功能未对用户提供的数据有效验证从而导致内存越界访问&#xff0c;攻击者可诱使用户使用 WinRAR 打开恶意文件&#xff0c…

【SkyWalking】分布式服务追踪与调用链系统

1、基本介绍 SkyWalking是一个开源的观测平台&#xff0c;官网&#xff1a;Apache SkyWalking&#xff1b; 可监控&#xff1a;分布式追踪调用链 、jvm内存变化、监控报警、查看服务器基本配置信息。 2、SkyWalking架构原理 在整个skywalking的系统中&#xff0c;有三个角色&am…

APP外包开发上线问题解决

在APP上线过程中可能会遇到各种问题&#xff0c;这些问题可能涉及技术、审核、发布等方面。可能会遇到各种挑战&#xff0c;但通过充分的准备、测试和持续的改进&#xff0c;可以解决大部分问题并提升应用的质量和用户满意度。以下是一些常见的问题及其解决方案&#xff0c;希望…

面试想拿13K,HR说你只值10K,该怎样反驳?

最近&#xff0c;有一个朋友跑来跟我吐槽说&#xff0c;刚刚一场面试&#xff0c;笔试面试都过了&#xff0c;部门领导对他也很满意&#xff0c;就只剩最后hr面谈了。以为只是走走流程&#xff0c;谈谈入职时间的事&#xff0c;没想到hr上来就说&#xff1a; 求职表上你写的期…

使用StorageClass动态创建pv

rook-ceph安装部署到位后&#xff0c;就可以开始来尝试使用StorageClass来动态创建pv了。 有状态的中间件在kubernetes上落地基本上都会用到StorageClass来动态创建pv&#xff08;对于云上应用没有那么多烦恼&#xff0c;云硬盘很好用&#xff0c;但是对于自己学习和练习来说还…

2023年护网总结报告

目录 一、 概况 二、 演习背景 三、 护网前期工作准备 3.1 成立工作小组 3.2 攻击面自查自检 3.3 制定演习方案 3.4 加强监测设施 四、 护网工作落实情况 4.1 严格落实值班制度 4.2 威胁情报收集 4.3 强化应急响应 4.4 严格管控 4.5 保障业务连续性 五、 演习评估…

开发第一个gPRC的开发

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

利用anaconda安装指定版本tensorflow的两种方法,并配置于Pycharm上

引言 作为一个跨专业到人工智能的小白&#xff0c;刚开始学习Deep learning时难免会遇到很多安装python开源库的问题&#xff0c;经过自己这段时间的摸索&#xff0c;总结出了两种安装tensorflow指定版本的方法&#xff08;可以衍生到安装其他python开源库&#xff0c;方法一样…

17.2.2 【Linux】通过systemctl观察系统上所有的服务

使用 systemctl list-unit-files 会将系统上所有的服务通通列出来&#xff5e;而不像 list-units 仅以 unit 分类作大致的说明。 至于 STATE 状态就是前两个小节谈到的开机是否会载入的那个状态项目。主要有 enabled / disabled / mask / static 等等。 假设我不想要知道这么多…

mybatis动态SQL的运用

一、mybatis动态SQL update 表名 set name?,age? where id? 如果我们的前台没有传参&#xff0c;比如没有传入我们的name值&#xff0c;name就会把字段值改为null&#xff0c;这就违背了我们编码的初衷。 许多人会使用类似于where 1 1 来作为前缀&#xff0c;在代码中会用i…

Socket编程入门

Socket编程 套接字的类型 套接字分为两种类型 Stream Sockets&#xff0c;流格式&#xff0c;传输使用的是TCP协议Datagram Sockets&#xff0c;数据包格式&#xff0c;传输使用的是UDP协议 结构体 在不同类型电脑中&#xff0c;字节的排列顺序是不同的&#xff1a;大端序…

uniapp项目添加人脸识别功能,可用作登录,付款,流程审批前的安全校验

本案例使用了hbuilder插件商城中的活体检验插件&#xff0c;可自行前往作者处下载查看&#xff0c; 效果图如下 此插件需要在manifest.json中勾选 实现流程 1&#xff1a;前往hbuilder插件市场下载插件 2&#xff1a;在页面中导入import face from "/uni_modules/mcc-…

成集云 | 维格表会员/租约/合同到期同步企微提醒 | 解决方案

源系统成集云目标系统 方案介绍 维格表是一种新一代的团队数据协作和项目管理工具&#xff0c;由深圳维格智数科技有限公司研发。它结合了可视化数据库、电子表格、实时网络协同、低代码开发技术四项功能&#xff0c;且支持API与可视化看板&#xff0c;操作简单&#xff0c;能…

【数据结构入门指南】二叉树

【数据结构入门指南】二叉树 一、二叉树的概念二、现实中的二叉树三、特殊的二叉树四、二叉树的性质五、二叉树的存储结构5.1 顺序结构5.2 链式结构 一、二叉树的概念 二叉树是一棵特殊的树。一棵二叉树是结点的一个有限集合&#xff0c;该节点&#xff1a; ①&#xff1a;或者…

Vue 2 插槽

可以先阅读组件基础-简单了解通过插槽分发内容。 一、插槽定义 插槽将子组件标签间的内容分发到子组件模板的<slot>标签位置。 如果没有<slot>标签&#xff0c;那么该内容将被丢弃。 二、编译作用域 内容在哪个作用域编译&#xff0c;就可以访问哪个作用域的数据…