【问题标题】:How do we save logs while building the code?我们如何在构建代码时保存日志?
【发布时间】:2013-01-11 19:26:28
【问题描述】:

我在 C 中使用 make 构建代码,我将如何保存构建日志?

【问题讨论】:

  • 可能会将输出重定向到文件??生成日志的原因是什么?

标签: c linux logging


【解决方案1】:

通常最有趣的输出(编译器警告和错误)会发送到 stderr。在 bash 中:

$ make 2> out

然后检查名为out 的文件。 2>Bash output redirection operator

【讨论】:

    【解决方案2】:

    如果你们都想保存日志并在控制台上查看,可以使用tee 命令:

    make 2>&1 | tee build.log
    

    2>&1 部分告诉外壳将stderr 重定向到stdout

    【讨论】:

    • @user1737057 默认情况下,tee 重新创建(即覆盖)文件。你真的确定它是旧内容吗?您在查找旧文件吗?
    【解决方案3】:

    Shell 输出重定向将在这里为您提供帮助。

    make 2>&1 > output.log
    

    见:make output redirection

    【讨论】:

      【解决方案4】:

      如果要保存 make 的输出,请使用:

      make 1>std.out 2> err.out
      

      1 表示标准输出,2 表示错误输出

      【讨论】:

        【解决方案5】:

        如果您使用标准 make,我假设您是通过终端完成的,所以您只需要这样做:make >> mylogfile.log
        有关 I/O 重定向的更多技巧,请查看here

        【讨论】:

          【解决方案6】:
          make 2>&1 > output.log
          

          这对你有帮助

          【讨论】:

            【解决方案7】:

            除了其他答案提出的重定向之外,请考虑使用 script 实用程序,它会写入您与 shell 及其子级或与其他程序交互的完整日志:输入和输出。

            有时您必须在制作过程中进行干预,在失败时修复某些内容,然后重新启动。当这样的事情被匆忙完成时,有一个关于你所做的事情的协议是有益的,在你做的时候不必考虑记录或记录

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-01-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-07
              • 1970-01-01
              相关资源
              最近更新 更多