dotnet Cli sdk 什么是 Terminal Logger 以及如何禁用此功能

news/2025/3/11 7:10:11/文章来源:https://www.cnblogs.com/lindexi/p/18764082

在 dotnet 9 默认开启的 Terminal Logger 功能,是在 dotnet 8 作为实验性引入的功能。核心原因是因为有开发者认为 dotnet sdk 在构建等过程中输出的内容太多了,干扰了程序猿的开发,期望能够自动折叠或删除不需要的输出内容。比如在 dotnet build 过程中,将在构建过程中刷刷刷显示日志的过程内容,如 Info 内容,但最终只包含构建过程,以及进行读秒。完成之后就只有警告和错误信息留下,其他信息全部删除

PS C:\lindexi\Code\Foo> dotnet build
还原完成(0.2)Foo 已成功 (1.5) → bin\Debug\net9.0\Foo.dll在 2.0 中生成 已成功

然而我日常开发很多开发任务都是和编译器相关的,这就意味着如果只剩下警告信息或错误信息,那对我调查问题是几乎完全没有帮助的

为了看到完全的日志,我就不断在 Windows 的 cmd 上,使用重定向输出方式,将输出内容放入到文件里面,如以下命令行示例,将构建输出信息重定向当前工作文件夹的 1.txt 文件里面。但这样的方式的效率很低,我需要不断读取本地文件才能知道构建日志信息

dotnet build > 1.txt

好在 dotnet 里面提供了对 Terminal Logger 功能的开关,可以使用 --tl:off 参数将其禁用,回到原本的完全日志输出形态

dotnet build --tl:off

执行以上之后的输出内容大概如下,可以看到还原过程等信息

PS C:\lindexi\Code\Foo> dotnet build --tl:off正在确定要还原的项目…已还原 C:\lindexi\Code\Foo\Foo.csproj (用时 36 毫秒)。Foo -> C:\lindexi\Code\Foo\bin\Debug\net9.0\Foo.dll已成功生成。0 个警告0 个错误已用时间 00:00:00.75

这项变更给许多库带来了坑点,原本很多库设计上都是简单控制台输出,现在为了更加方便定位问题,就需要直接打成 warn: 等开头的警告输出。如 DotNETBuildSDK 的 https://github.com/dotnet-campus/dotnetcampus.DotNETBuildSDK/pull/167 更改。但很多工具库都不能很好适应,因为日常输出过程中压根不知道后续会不会失败,如果都是 Info 等级输出,等到构建失败的时候,却会让开发者缺乏信息。特别是对新手开发者不友好,新手开发者一截图,都会发现毫无有用信息,有用的信息都被省略掉了

记录本文的目的是因为太难搜到了,我压根不知道这个功能叫什么。即使我在 Breaking change: Terminal logger is default - .NET - Microsoft Learn 这篇文档经过了非常多次,我都无法联系起来

为了方便大家找到本文,我添加了一些关键词

禁用 dotnet 折叠构建日志

禁止 dotnet sdk 删除构建日志

dotnet 命令行输出构建步骤时间

dotnet 命令行步骤时间

dotnet 命令行构建读秒

dotnet 控制台只输出重要信息

dotnet 控制台省略日志

dotnet 控制台省略输出

dotnet 控制台行折叠

dotnet build 只输出重要信息

dotnet build 输出 Info 等级日志信息

dotnet 控制台删除信息等级日志输出

dotnet 命令行 -v:diag 内容看不见

dotnet 只输出警告

dotnet build 只输出警告

dotnet 只输出错误

dotnet build 只输出错误

参考文档:

  • Enable the new TerminalLogger in .NET 8 SDK automatically - Meziantou's blog

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

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

相关文章

读DAMA数据管理知识体系指南16数据存储和操作活动

读DAMA数据管理知识体系指南16数据存储和操作活动1. 活动 1.1. 数据存储和操作包括数据库技术支持和数据库操作支持两个主要活动 1.2. 数据库技术支持侧重选择和维护用于存储和管理数据的软件 1.3. 数据库操作支持侧重软件所管理的数据和进程 2. 管理数据库技术 2.1. 技术管理的…

退役划水十 贝肯茨威格

发暗网上没过审,管理员说要来鲨我,只能发博客园了贝肯是贝肯,茨威格是茨威格,但这里是划水,不是史论,更不是冻鳗理论。 很多人都认为茨威格在《断头王后:玛丽安托瓦内特传》中有一段很文艺,很精辟的评价:“她那时候还太年轻,不知道所有命运赠送的礼物,早已在暗中标好…

How to use Linux shell echo date to a log file All In One

How to use Linux shell echo date to a log file All In One 如何使用 Linux shell 将日期打印输出到日志文件How to use Linux shell echo date to a log file All In One如何使用 Linux shell 将日期打印输出到日志文件solutions # 命令 ✅ $ date >> /etc/rc.local.m…

树莓派3B安装wiringpi失败的解决办法

大家好,我是努力赚钱的小智! 问题描述: 1.安装wiringpi失败 2.输入gpio -v与gpio readall命令出现not found系统信息 树莓派系统是32位!解决办法 1.确认是否需要树莓派系统配置镜像源 2.确认是否已经安装git sudo apt-get install git若遇到上图的情况,请直接按下回车键! …

全链路测试中的影子体系

一、全链路测试的入门理解 1.1什么是全链路测试? 全链路测试是指对系统中所有组件和服务的完整流程进行测试,确保从用户请求到系统响应的每个环节都能正常工作。它覆盖了前端、后端、数据库、第三方服务等所有部分。通俗解释:想象你在网上购物,从搜索商品到下单、支付、收货…

Linux rc.local rc.d All In One

Linux rc.local & rc.d All In One Linux 系统开机/登录自启动配置文件 /etc/rc.local /etc/rc.dLinux rc.local & rc.d All In OneLinux 系统开机/登录自启动配置文件rc.localRaspberry Pi$ cat /etc/rc.localrc.dCentOS / Ubuntu$ ls -al /etc/rc.ddemos eric@rpi3b:…

基本进程调度算法

本文讨论了硬件和操作系统是如何支持进程调度的,并列举了一些进程调度算法。希望本文能帮助读者快速建立起对进程调度的认识。在下一篇文章中,我们将不使用这个假设,再给出一些调度策略。写在前面 在了解了进程的基本概念之后,我们开始学习进程调度算法。本文讨论了硬件和操…

FastAPI 自定义参数验证器完全指南:从基础到高级实战

title: FastAPI 自定义参数验证器完全指南:从基础到高级实战 date: 2025/3/11 updated: 2025/3/11 author: cmdragon excerpt: 本教程深入探讨 FastAPI 中自定义参数验证器的使用,特别是通过 Field 函数进行数据校验。从基础概念到高级用法,通过详细的代码示例、课后测验和…

B端、G端需求调研流程

与C端的流程不同,B端和G端之类的产品,在需求调研阶段就有较多差异。这篇文章,我们来看看作者分享的这些经验。需求调研流程主要包含“调研前准备”、“调研中过程”、“调研后输出”三块内容。调研前:准备 第一步:沟通项目情况 在产品正式需求调研前,相信已经有售前初步跟…

Hetao P1287 小核桃玩核桃棋 题解 [ 蓝 ] [ 观察 ] [ 二维 dp ] [ 容斥原理 ]

很厉害的观察性质,加上 dp 辅助计数的题。小核桃玩核桃棋:质量挺高的一道 dp,好像是搬的某场神秘 ICPC 的?观察 首先我们观察最优解有什么性质,显然这个问题就是要我们选择一些点覆盖所有的行与列。贪心地考虑,不难想出我们从 \((1,1)\) 开始按照对角线来放置,就一定能取…

GAMMA: Revisiting Template-based Automated Program Repair via Mask Prediction 论文笔记

介绍 (1) 发表 2023-09 ASE23 (2) 背景 基于模版的 APR 采用了由人类专家手工制作的维修模式将错误代码片段转变为正确代码片段,被认为是最先进的,大量研究专门用于模版提取方案。然而以前的工作显示出相当数量的错误无法修复,因为相关的错误代码在本地文件中不可用基于深度…

基于模糊PID控制的六步逆变器供电无刷直流电机调速simulink仿真

1.课题概述基于模糊PID控制的六步逆变器供电无刷直流电机调速simulink仿真.将仿真结果和传统的PID控制器的仿真结果进行对比。2.系统仿真结果 (完整程序运行后无水印)1.转速对比,并局部放大显示2.电流对比,并局部放大显示3.电压对比,并局部放大显示4.Te对比,并局部放大显…