Loading

msbuild 自定义日志输出

自定义打包日志输出,过滤不想看到的无关日志。

原理

[visual studio 2013 - How to have MSBuild quiet output but with error/warning summary - Stack Overflow]
(https://stackoverflow.com/questions/25565610/how-to-have-msbuild-quiet-output-but-with-error-warning-summary )

[IEventSource Interface (Microsoft.Build.Framework) | Microsoft Docs]
(https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.framework.ieventsource?view=msbuild-16-netcore )

代码

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 的命令:

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 编译安静了很多,没有错误的话,就没有任何输出。

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

msbuild -m -p:Configuration=Release /consoleloggerparameters:ErrorsOnly

使用 /consoleloggerparameters:ErrorsOnly 即可。

P.S.
nuget 命令,可使用 -v q 参数简化输出。
[NuGet CLI restore command | Microsoft Docs]
(https://docs.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-restore )

原文链接:
https://www.cnblogs.com/jasongrass/p/13226498.html

posted @ 2020-07-02 19:04  J.晒太阳的猫  阅读(498)  评论(1编辑  收藏  举报