Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将容器中的python标准输出日志获取到";oc日志“;_Python_Cron_Containers_Openshift_Stdout - Fatal编程技术网

无法将容器中的python标准输出日志获取到";oc日志“;

无法将容器中的python标准输出日志获取到";oc日志“;,python,cron,containers,openshift,stdout,Python,Cron,Containers,Openshift,Stdout,我有一个运行cron作业的openshift容器。这个cron作业运行一些python代码。 我已经设置了一个记录器,将日志流式传输到stdout,我希望在查询“oc logs[pod]-c[container]”时可以看到这些日志,但我没有 这是定义的记录器: import os import logging.config synthetic_home = os.environ.get('SYNTHETIC_HOME') logPath = '{0}/logs/'.format(synthe

我有一个运行cron作业的openshift容器。这个cron作业运行一些python代码。 我已经设置了一个记录器,将日志流式传输到stdout,我希望在查询“oc logs[pod]-c[container]”时可以看到这些日志,但我没有

这是定义的记录器:

import os
import logging.config

synthetic_home = os.environ.get('SYNTHETIC_HOME')
logPath = '{0}/logs/'.format(synthetic_home)
fileName = 'synthetic.log'

synthetic_log_name = os.environ.get('LOG_NAME')
if not synthetic_log_name:
    synthetic_log_name = 'synthetic-onlinevideoservices'


config = {
    'version': 1,
    'disable_existing_loggers': False,
    },

    'formatters': {
        'standard': {
            'format': '%(asctime)s, {0}, SYNTH_TEST, %(levelname)s, FCID=%(fcid)s, *%(test_name)s* %(message)s'.format(synthetic_log_name),
            #            'datefmt': '%Y-%m-%dT%H:%M:%S.%f%z',
        },
    },
    'handlers': {
        'file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': '{0}/{1}'.format(logPath, fileName),
            'formatter': 'standard'
        },
        'stream': {
                'level': 'INFO',
                'class': 'logging.StreamHandler',
                'formatter': 'standard'
        }
    },
    'loggers': {
        'results': {
            'handlers': ['stream'],
            'level': 'INFO',
            'propagate': True

        }
    }
}

logging.config.dictConfig(config)

我不确定这段代码从cron作业运行这一事实在这里是否重要。 在任何情况下,我都需要信息日志反映在“oc日志”中,而事实并非如此。
我做错了什么?

我看不到您将
sys.stdout
指定为
StreamHandler
的流的任何地方。
StreamHandler
的默认流是
None
ext://sys.stdout谢谢@WillGordon-现在试试还是不行。流记录器现在看起来是这样的:
'stream':{'level':'INFO','class':'logging.StreamHandler','formatter':'standard','filters':['fcid\u filter','test\u name\u filter'],'stream':'ext://sys.stdout“}
只是为了测试,为什么不试试
流:{'level':'DEBUG','class':'logging.StreamHandler','formatter':'standard','stream':'ext://sys.stdout' }
sys.stdout作为
StreamHandler
的流,我看不到任何地方指定
sys.stdout
作为流。
StreamHandler
的默认流是
None
。其中有一个示例显示
流:ext://sys.stdout
谢谢@WillGordon-现在试一试仍然不起作用。流gger现在看起来像这样:
'stream':{'level':'INFO','class':'logging.StreamHandler','formatter':'standard','filters':['fcid\u filter','test\u name\u filter'],'stream':'ext://sys.stdout“}
只是为了测试,为什么不试试
流:{'level':'DEBUG','class':'logging.StreamHandler','formatter':'standard','stream':'ext://sys.stdout“}