减少 NANT + MSBUILD 中的冗长程度

本文关键字:程度 NANT MSBUILD 减少 | 更新日期: 2023-09-27 17:56:26

我试图减少 NANT 脚本生成的输出的详细程度,因为几个小时。

我尝试将 msbuild 命令链接参数设置为: /v:m /clp:ErrorsOnly但我仍然收到以下信息:

RestorePackages:
     [exec]          Restoring NuGet packages...

我还尝试在 NANT 脚本中将几乎所有内容设置为详细,但它仍然在控制台输出中获取它

<delete verbose="true"

我尝试谷歌了很多,但我无法清除NANT/MSBUILD的日志。

减少 NANT + MSBUILD 中的冗长程度

您可以创建自己的任务容器,用于定义内部代码的日志级别

        [TaskName("loglevel")]
        public class LogLevelTask : TaskContainer
        {
            private Level _logLevel;
            protected override void ExecuteTask()
            {
                Level oldLevel = Project.Threshold;
                try
                {
                    SetLogLevel(_logLevel);
                    base.ExecuteTask();
                }
                finally
                {
                    SetLogLevel(oldLevel);
                }
            }
            [TaskAttribute("level", Required = true)]
            public Level LogLevel
            {
                get
                {
                    return _logLevel;
                }
                set
                {
                    _logLevel = value;
                }
            }
            public void SetLogLevel(Level newLevel)
            {
                foreach(IBuildListener listener in Project.BuildListeners)
                {
                    IBuildLogger logger = listener as IBuildLogger;
                    if(logger != null)
                    {
                        logger.Threshold = newLevel;
                    }
                }
            }
        }

然后你可以把它添加到南特脚本中

<loglevel level="None"> <!-- You can set any other level -->
    <!-- Do whatever you want -->
</loglevel>

您可以在此处阅读更多相关信息http://www.neovolve.com/2008/01/16/loglevel-nant-task/