【问题标题】:How to lower docfx verbosity?如何降低docfx冗长?
【发布时间】:2019-05-05 21:39:56
【问题描述】:

我们使用 docfx,它作为 nuget 包含在我们的一个 csproj 文件中。我没有亲自设置这个东西,也没有关于它如何工作的更多信息,但它看起来像是一个简单的 nuget 添加到 C# 项目中,然后在 Visual Studio 中的项目编译期间生成文档。

我们的问题是构建日志的详细程度总是设置为详细(或详细或他们如何称呼它),即我在解决方案中有 20 个 c# 项目,因为我没有警告或错误,所以在整个解决方案的输出窗口非常短,每个项目只有几行。但是这个带有d​​ocfx的项目在编译期间总是会产生很多输出,因为它会将所有详细消息写入输出窗口(以及放置在项目目录中的log.txt文件)。

问题是如何从“输出”窗口中消除它。我试图用谷歌搜索它,我发现命令行上的 --logLevel 警告参数可以降低详细程度。但是我们不使用任何命令行,我们在项目中有 nuget。而且我看不到可以指定此 --logLevel 警告的地方。

(使用最新的 nuget "docfx.console" 版本 2.40.4,C# 项目属于类库类型。我在任何地方都看不到特殊设置。Visual Studio 的 msbuild 详细设置设置为最小输出窗口和日志文件。)

【问题讨论】:

    标签: c# msbuild verbosity docfx


    【解决方案1】:

    编辑: 自从我第一次回复以来,我发现了在项目级别上做这件事的更好方法。

    如果您编辑 DocFx 项目的 .csproj 文件以包含以下属性组,则可以设置项目的日志级别。

    <PropertyGroup>
      <LogLevel>Warning</LogLevel>
    </PropertyGroup>
    

    我从这个关于这个 git 问题的评论中得到了这个想法:https://github.com/dotnet/docfx/issues/2595#issuecomment-379947069


    原始回复:

    我只找到了一种方法,但它会在全局级别,如果升级到新版本可能需要重新设置。

    您可以修改 docfx.console.targets 文件以更改日志级别。在我的电脑上,它位于

    C:\Users\<username>\.nuget\packages\docfx.console\<version number>\build\docfx.console.targets
    

    这是一个 XML 文件,您可以在其中设置要使用的日志级别。

    <Project ...>
      <PropertyGroup>
        ...
        <LogLevel Condition=" '$(LogLevel)' == '' ">Verbose</LogLevel>
        ...
      </PropertyGroup>
    

    我将“详细”更改为“警告”,它显着减少了生成的日志消息。

    希望这对你也有帮助!

    【讨论】:

    • 我刚刚发现了一个更好的解决方案。我将编辑我的回复以包含它。
    • 是的,“更好”的解决方案有效。我只是在想......它对项目中的其他事情有多大影响?因为这个属性设置非常通用。
    • 我不确定您的解决方案是如何设置的。在我的解决方案中,docfx 位于解决方案中它自己的项目中。因为我在那个项目中没有其他任何东西,所以该设置只影响docfx。
    • 对我们来说,docfx 只为一个特定项目构建文档,因此它包含在其 csproj 中。
    • 在这种情况下,它也可能会影响其他日志记录设置。我不确定。
    猜你喜欢
    • 2012-11-07
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2022-01-14
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多