当前位置:  开发笔记 > 前端 > 正文

Jenkins"控制台输出"日志文件系统中的位置

如何解决《Jenkins"控制台输出"日志文件系统中的位置》经验,为你挑选了4个好方法。

我想访问和grep Jenkins控制台输出作为创建此输出的同一作业中的后期构建步骤.重定向日志>> log.txt不是解决方案,因为我的构建步骤不支持此功能.

建立:

echo "This is log"

后期制作步骤:

grep "is" path/to/console_output

在文件系统中创建的特定日志文件在哪里?



1> 小智..:

@Bruno Lavit有一个很好的答案,但如果你想要,你只需访问日志并将其作为txt文件从作业的URL下载到你的工作区:

${BUILD_URL}/consoleText

然后,只需将此页面下载到您的网站即可 ${Workspace}

您可以使用" Invoke ANT"并使用GET目标

在Linux上,您可以使用wget将其下载到您的工作区

等等

祝好运!

编辑:文件系统上的实际日志文件不在从属服务器上,而是保存在主服务器中.你可以在下面找到它:$JENKINS_HOME/jobs/$JOB_NAME/builds/lastSuccessfulBuild/log

如果您正在寻找另一个版本,只需替换lastSuccessfulBuild您正在寻找的版本.


这对我的Jenkins失败,因为该文件夹仅被称为“ lastSuccessful”。但是,当构建正在运行时,“ lastSuccessful”是一些先前成功的构建,而不是当前的构建。如果当前构建成功完成,则它将成为最后一个成功的构建。
wget将需要user_id / password,但我不想将其放在配置中。如何使用wget从运行该作业的现有身份验证下载consoleText?

2> Bruno Lavit..:

您可以安装此Jenkins控制台日志插件,以便在工作区中编写日志作为后期构建步骤.

您必须自己构建插件并手动安装插件.

接下来,您可以像这样添加一个post build步骤:

在此输入图像描述

通过额外的后期构建步骤(shell脚本),您将能够grep您的日志.

我希望它有帮助:)



3> 小智..:

Jenkins将控制台日志存储在master上.如果您希望以编程方式访问日志,并且您在master上运行,则可以访问Jenkins已有的日志,而无需将其复制到工件或必须获取http作业URL.

从http://javadoc.jenkins.io/archive/jenkins-1.651/hudson/model/Run.html#getLogFile()返回控制台输出的File对象(在jenkins文件系统中,这是"log" "构建输出目录中的文件".

在我的例子中,我们使用链式(子)作业来对父作业的构建进行解析和分析.

当使用在Jenkins中运行的groovy脚本时,您将获得一个名为"build"的对象.我们使用它来获取上游作业的http://javadoc.jenkins.io/archive/jenkins-1.651/hudson/model/Build.html,然后调用此作业的.getLogFile().

增加奖金; 因为它只是一个File对象,所以我们调用.getParent()来获取Jenkins存储构建附属文件的文件夹(如测试xmls,环境变量以及其他可能未通过工件显式公开的内容),我们也可以解析它们.

双倍额外奖金; 我们也使用矩阵作业.这有时会使系统上的文件路径变得很麻烦..getLogFile().getParent()消除了所有的痛苦.



4> lvthillo..:

对于非常大的输出日志,可能很难打开(网络延迟,滚动)。这是我用来检查大日志文件的解决方案:

https://URL/jenkins/job/name/

在左栏中,您将看到: View as plain text。做一个正确的就可以了鼠标点击和选择save links as。现在,您可以将大日志另存为.txt文件。使用记事本++打开它,您可以轻松浏览日志,而在滚动过程中不会出现网络延迟。

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有