Jenkins控制台仅从main.py打印记录程序命令

问题描述 投票:0回答:1

我在Jenkins中有一个管道,它会触发一个python文件:

  status = sh script: '''
    python3 main.py --command check_artfiacts
''', returnStatus:true

只要我在main.py中,我就可以从控制台中的logger获得预期的结果:

2019-11-28 22:14:32,027 - __main__ - INFO - starting application from: C:\Tools\BB\jfrog_distribution_shared_lib\resources\com\amdocs\jfrog\methods, with args: C:\Tools\BB\jfrog_distribution_shared_lib\resources\com\amdocs\jfrog\methods
2019-11-28 22:14:32,036 - amd_distribution_check_artifacts_exists - INFO - Coming from func: build_aql_queries

但是,当调用另一个python文件中存在的函数时,它不起作用(行为类似于普通打印):

added helm to aql
amd_distribution_check_artifacts_exists: build_docker_aql_query_by_item

我确信这是一些管道问题,因为从PyCharm运行代码时,它会按预期打印所有内容。有人遇到过这样的问题吗?

python-3.x logging groovy pycharm jenkins-pipeline
1个回答
0
投票

我在此线程中找到了解决方案:jenkins-console-output-not-in-realtime所以-u为我工作:

python3 -u main.py --command check_artfiacts
© www.soinside.com 2019 - 2024. All rights reserved.