zoukankan      html  css  js  c++  java
  • 调用subprocess 使用logging打印日志

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:Henry  17607168727@163.com
    
    import sys
    import logging
    from logging.handlers import TimedRotatingFileHandler
    import os
    from subprocess import Popen, PIPE, STDOUT
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    
    LOG_FILE_NAME = 'send_snmp_trap.log'
    logger = logging.getLogger('SenSNMPTrap.py')
    logger.setLevel(level=logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(funcName)s - %(process)d - %(levelname)s - %(message)s')
    LOG_PATH = os.path.join('/tmp', LOG_FILE_NAME)
    
    # 每天午夜更新日志文件
    handler = TimedRotatingFileHandler(LOG_PATH, when='midnight', backupCount=3, )
    handler.setLevel(logging.INFO)
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    
    console = logging.StreamHandler()
    console.setLevel(logging.INFO)
    console.setFormatter(formatter)
    # 输出到屏幕
    logger.addHandler(console)
    
    
    def log_subprocess_output(pipe):
        for line in iter(pipe.readline, b''):  # b'
    '-separated lines
            logger.info('got line from subprocess: %r', line)
    
    
    def run_command(command_line_args):
        process = Popen(command_line_args, stdout=PIPE, stderr=STDOUT)
        with process.stdout:
            log_subprocess_output(process.stdout)
        exitcode = process.wait()  # 0 means success
        if exitcode == 0:
            logger.info('success')
        else:
            logger.error("failed")
    
    
    run_command(command_line_args=['ls', '/tp/'])
    
  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/randomlee/p/11245794.html
Copyright © 2011-2022 走看看