调用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'\n'-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/'])
												
											调用subprocess 使用logging打印日志的更多相关文章
- Python基础之模块:6、hashlib模块   subprocess模块   logging模块
		
目录 一.hashlib模块 1.简介 2.基本操作与用法 二.subprocess模块 1.简介 2.基本操作与用法 三.logging模块 1.简介 2.基本操作与用法 一.hashlib模块 1 ...
 - 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
		
前期对python中的logging模块进行了封装,这样自动化测试框架中的多个测试脚本(py)就可以使用同一个封装后的日志系统,这样各脚本中只需要引用一下即可,方面快捷.那么当我使用unittest框 ...
 - s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
		
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
 - 以打印日志为荣之logging模块详细使用
		
啄木鸟社区里的Pythonic八荣八耻有一条: 以打印日志为荣 , 以单步跟踪为耻; 很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python ...
 - 【踩坑记录】记录一次使用Python logging库多进程打印日志的填坑过程
		
背景: 项目使用Python自带的logging库来打印日志 项目部署在一台Centos7的机器上 项目采用gunicorn多进程部署 过程: 1.LOG日志代码封装: 采用logging库,并设置w ...
 - android112   c代码打印日志,c反编译调用java
		
activity: package com.itheima.ccalljava; import android.os.Bundle; import android.app.Activity; impo ...
 - python之打印日志logging
		
import logging # 简单打印日志举例 logging.basicConfig(level=logging.DEBUG) # 设置日志级别,WARN logging.warning('Wa ...
 - [已解决] Python logging 重复打印日志信息
		
问题描述 问题代码如下: def get_logger(logger_name): """得到日志对象""" logger = loggin ...
 - Python中logging在多进程环境下打印日志
		
因为涉及到进程间互斥与通信问题,因此默认情况下Python中的logging无法在多进程环境下打印日志.但是查询了官方文档可以发现,推荐了一种利用logging.SocketHandler的方案来实现 ...
 
随机推荐
- Java架构师告诉你Spring IoC有什么好处呢
			
前言: 这个问题也一直困惑我很久,毕竟其他语言没有IOC也活的很好. 但是Spring在当时能够一统江湖,跟IOC真的有很大的关系. 在没有IOC的时代,New代表一切,女朋友都是可以New出来的. ...
 - docker搭建单机ELK
			
yum -y install epel-release yum -y install python-pip // 更新pip pip install --upgrade pip // 安装docker ...
 - openpyxl 设置单元格颜色
			
在处理excel数据格式的时候,需要对特定单元格进行颜色标注,方便相关人员查看 醒目 # -*- coding: utf-8 -*- from openpyxl import load_workboo ...
 - [Mac][Python][Jupyter Notebook]安装配置和使用
			
Jupyter 项目(以前称为 IPython 项目),提供了一套使用功能强大的交互式 shell 进行科学计算的工具,实现了将代码执行与创建实时计算文档相结合. 这些 Notebook 文件可以包含 ...
 - linux的简单了解和使用
			
一. Linux概述 1.1. 简介 Linux是一个自由的,免费的,源码开放的操作系统.也是开源软件中最著名的例子.其最主要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Un ...
 - 更改jupyter notebook的单元格宽度和主题颜色(theme)
			
一.单元格宽度 这个命令: jt -t gruvboxl -f roboto -fs 12 -cellw 100% -T -N 它将宽度设置为100% 二.主题颜色 在用jupyter noteboo ...
 - 剑指Offer的学习笔记(C#篇)-- 孩子们的游戏(圆圈中最后剩下的数)
			
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
 - Week08_day01 (Hive实现按照指定格式输出每七天的消费平均数)
			
Hive实现按照指定格式输出每七天的消费平均数 数据准备 2018/6/1,10 2018/6/2,11 2018/6/3,11 2018/6/4,12 2018/6/5,14 2018/6/6,15 ...
 - H5:加载原理,慢加载和卡顿原因分析,
			
前端H5工作原理: 请求和显示原理 H5页面卡顿原因分析: 1.动画太多:渲染重绘占用GPU 2.页面操作导致重绘频繁 3.页面元素复杂:资源类标签太多(图像/视频/dom树太长) 4.内置webvi ...
 - JMeter学习之元件的作用域与执行顺序
			
1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...