我可以将自定义构建日志记录器与标准日志记录器并排使用吗?

本文关键字:日志 记录器 自定义 构建 我可以 标准 | 更新日期: 2023-09-27 18:01:18

我有一个基于MSDN的BasicFileLogger示例的自定义构建日志记录器。它工作得很好,但是如果我想在构建服务器上使用它,我需要它的输出是除了默认日志记录器已经输出的输出之外的输出,但是写入一个单独的文件(并使用不同的选项)。为了让事情变得更有趣,现有的构建日志记录方案每次都会创建一个新文件,但我希望我的日志记录附加到一个文件。(如果重要的话,我们通过单独调用msbuild.exe在命令行上构建几个项目,而不是使用主解决方案文件)。

我正在考虑的一种方法是封装一个实现默认日志记录器行为的类,它将在警告和错误事件中获得第一次破解,因此我可以将它们以我的格式写入我的文件,但随后将它们转发给内部类以将它们写入用/filelogger指定的文件。第一个问题是,这有必要吗?如果是这样,我可以在命令行上传递两个不同的日志文件名,或者其中一个需要"神奇地"设置(例如,使用环境变量),另一个需要使用/filelogger传递。我认为这是本文使用的一般方法。

我可以将自定义构建日志记录器与标准日志记录器并排使用吗?

当然!

查看这里的命令行开关。注意"追加"开关以启用所请求的行为。

我看到这个链接提供了这个示例来使用自定义记录器控制控制台输出:

MSBuild /nologo /noconsolelogger /logger:SimpleLogger.dll /verbosity:Detailed

可以使用/cl来管理控制台记录器,使用/flN来管理各种文件记录器。

msbuild.exe /fl1 /flp1:Verbosity=diag;logfile=msbuild.log;append;