lau*_*ura 11 logging hudson jenkins
我正在使用Jenkins进行CI - 并且希望能够公开日志,这样我们就不必telnet到CI框来查看正在发生的事情.
有插件会这样做吗?或者我应该只需要编写一个脚本?
我的答案是从不同的框中读取应用程序服务器/容器日志文件,而不是运行Jenkins.例如,如果您使用Jenkins构建您的战争,然后将它们部署到多个环境,并且您希望从Jenkins CI服务器读取日志文件,而无需手动ssh/telnet其他框.
您可以创建一个Jenkins项目/作业来为您完成,在创建Jenkins项目之后,您将找到Configure选项,并且在Build部分中有一个选项可以编写shell脚本:

你的脚本可以是这样的:
#!/bin/sh
USER=<your ssh user>
HOST=<your remote host>
LOG_DIR=<your log file location>
FILE=<your log file>
cmd="ssh $USER@$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd
Run Code Online (Sandbox Code Playgroud)
或者更复杂的东西,例如在构建Jenkins Job之前传递参数,以便用户可以选择他们想要查看的环境和日志文件,有一个名为"This build is parameterized"的选项,您可以选择并添加参数:

使用该配置,用户在尝试构建项目时将看到类似的内容:

shell脚本可以使用这样的参数:
#!/bin/sh
USER=<your ssh user>
LOG_DIR_DEV=<log files location in dev>
LOG_DIR_QA=<log files location in qa>
if [ $ENVIRONMENT = "dev" ]; then
HOST=<your remote host for dev>
LOG_DIR=$LOG_DIR_DEV
fi
if [ $ENVIRONMENT = "QA" ]; then
HOST=<your remote host for qa>
LOG_DIR=$LOG_DIR_QA
fi
echo ENVIRONMENT=$ENVIRONMENT
cmd="ssh $USER@$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd
Run Code Online (Sandbox Code Playgroud)
构建作业后,他们可以在Jenkins作业控制台中看到日志的输出,例如:

如果您的日志文件太长,也许您可以在脚本中使用"tail"而不是"cat".
如果您指的是Jenkins构建的常规输出,则可以通过"控制台输出"链接下的每个构建的Web UI获得.
如果您指的是在构建期间在工作空间中生成的特定日志文件,则可以在作业配置的"构建后步骤"部分中选择"存档工件"选项.
在那里你可以指定一个文件模式,例如**/*.log.
匹配该模式的工作空间中的任何文件都将在每次构建结束时存档,并且将在构建的网页上显示.
请注意,如果没有文件与此模式匹配,则构建将失败.
| 归档时间: |
|
| 查看次数: |
33713 次 |
| 最近记录: |