前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >msbuild 自定义日志输出

msbuild 自定义日志输出

作者头像
jgrass
发布2024-12-25 16:33:47
发布2024-12-25 16:33:47
6200
代码可运行
举报
文章被收录于专栏:蔻丁杂记蔻丁杂记
运行总次数:0
代码可运行

自定义构建日志输出,过滤不想看到的无关日志

原理

visual studio 2013 - How to have MSBuild quiet output but with error/warning summary - Stack Overflow

IEventSource Interface (Microsoft.Build.Framework) | Microsoft Docs

代码

代码语言:javascript
代码运行次数:0
复制
using System;using Microsoft.Build.Utilities;using Microsoft.Build.Framework;
public class CustomLogger : Logger{    private int warnings = 0;    private int errors = 0;
    public override void Initialize(IEventSource eventSource)    {        eventSource.WarningRaised += (s, e) => ++warnings;        eventSource.ErrorRaised += (s, e) =>        {            ++errors;            string line = String.Format("ERROR {0}({1},{2}): ", e.File, e.LineNumber, e.ColumnNumber);            Console.WriteLine(line + e.Message);        };
        eventSource.BuildFinished += (s, e) =>        {            Console.WriteLine(errors == 0 ? "Build succeeded." : "Build failed.");            Console.WriteLine(String.Format("    {0} Warning(s)", warnings));            Console.WriteLine(String.Format("    {0} Error(s)", errors));        };    }}

命令

编译自定义日志组件 DLL 的命令:

Terminal window

代码语言:javascript
代码运行次数:0
复制
csc /t:library CustomLogger.cs /reference:Microsoft.Build.Utilities.v4.0.dll;Microsoft.Build.Framework.dll

编译命令(日志配置):

msbuild /logger:CustomLogger.dll /noconsolelogger

编译命令(日志配置),指定 CustomLogger.dll 目录:

msbuild /m /p:Configuration=Release /logger:".\Build\tools\CustomLogger.dll" /noconsolelogger

效果

msbuild 编译安静了很多,没有错误的话,就没有任何输出。

当然,如果只是想仅输出错误,有更简单的方法:

Terminal window

代码语言:javascript
代码运行次数:0
复制
msbuild -m -p:Configuration=Release /consoleloggerparameters:ErrorsOnly

使用 /consoleloggerparameters:ErrorsOnly 即可。

P.S.

nuget 命令,可使用 -v q 参数简化输出。

NuGet CLI restore command | Microsoft Docs

参考

MSBuild Command-Line Reference - MSBuild | Microsoft Learn

View, save, and configure build log files - Visual Studio (Windows) | Microsoft Learn


原文链接: https://cloud.tencent.com/developer/article/2481493

本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年7月2日 |,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理
  • 代码
  • 命令
  • 效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档