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

时间:2019-11-28 20:33:52

标签: python-3.x logging groovy pycharm jenkins-pipeline

我在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运行代码时会产生问题,因为它可以按预期打印所有内容。 有人遇到过这样的问题吗?

1 个答案:

答案 0 :(得分:0)

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

python3 -u main.py --command check_artfiacts