【问题标题】:How can I output from java code to the Jenkins console?如何从 java 代码输出到 Jenkins 控制台?
【发布时间】:2014-07-26 15:01:36
【问题描述】:

我有添加了许多System.out.println() 的java 代码。其中之一是在“主要”方法的开始。当我在 NetBeans 中启动代码时,我看到所有这些 println 的控制台输出。

当我在 Jenkins/ant 中启动课程并将 fork&spawn 设置为 true(作为单独的任务)时,它会运行,但不会将 println 放入 Jenkins 控制台。

我可以让 System.out.println 写入 Jenkins 控制台吗?

我发现了一个有趣的repaired Jenkins issue,他们说“对象模型中的一个变量'out'可以用来向构建控制台写入消息”如何?

编辑: 在同一个项目中,未生成的应用程序将其stdout 输出到 Jenkins 控制台中。

编辑 2。 请注意,我想输出到 Jenkins 控制台,而不是文件。

【问题讨论】:

    标签: java logging ant jenkins console


    【解决方案1】:

    如果您想将进程的输出重定向到 Jenkins 控制台,例如因为您调用了一些写入System.out 的库代码,所以您可以使用System.setOut / System.setErr 重定向您调用的任何内容的输出。

    @Override
    public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener)
         PrintStream outOriginal = System.out;
         PrintStream errOriginal = System.err;
         try {
            System.setOut(listener.getLogger());
            System.setErr(listener.getLogger());
            System.out.println("Testing System.out");
            // Call your code that writes to System.out by default
         } finally {
            System.setOut(outOriginal);
            System.setErr(errOriginal);
         }
    }
    

    【讨论】:

      【解决方案2】:

      如果你覆盖了方法 perform 然后,使用 BuildListener 实例来获取 logger 实例并使用 print 方法写入。 像这样

      @Override
      public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) {
      
          // This is where you 'build' the project.       /
          // This also shows how you can consult the global configuration of the builder
          listener.getLogger().println("Inside the Perform Method");
          return true;
      }
      

      【讨论】:

        【解决方案3】:

        TaskListener 的 Jenkins 有一个方法 getLogger() 可以使用它在控制台输出中打印。 System.out.println 不会被重定向到 Jenkins 中的控制台输出。

        【讨论】:

        • 我怎样才能从代码内部访问它? “你可以打印” - 怎么样?
        • 如果您在插件中扩展perform,您可以通过BuildListener 访问getLogger
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多