python 输出log_python:logging模块(记录打印日志)

logging.basicConfig(**kwargs):创建默认处理器从而将调试消息写至文件,它接受一个字典

filename:指定文件名,把记录输出定向的文件里面,如果不指定文件名就会直接打印到屏幕上

filemode:指打开文件的模式(默认为a)

format:指定的字符串格式

datefmt:指定日期格式

level:指定日志的级别级别值含义

CRITICAL,FATAL50临界

ERROR40错误

WARNING,WARN30警告

INFO20通知

DEBUG10调试

#coding:utf-8

import logging

logging.basicConfig(level = logging.INFO)#定义日志级别为INFO级别

#下面是定义各个级别的日志输出

logging.debug('I am debug')

logging.info('I am info')

logging.warn('I am warning')

logging.error('I am error')

logging.critical('I am critical')

######运行结果######

>>> INFO:root:I am info

WARNING:root:I am warning

ERROR:root:I am error

CRITICAL:root:I am critical

由于定义的日志级别是INFO,而debug级别的值只有10,而INFO的是20

所有不会打印出来,只打印大于INFO值的日志记录

一般我调试程序都是直接打印在屏幕的所以就没输出到文件了

logging模块还支持将线程名嵌入到各个日志消息中

下面写个利用logging模块调试多线程的例子:#coding:utf-8

import threading

import time

import logging

logging.basicConfig(level = logging.DEBUG,

format ='[%(levelname)8s]\t (%(threadName)10s)\t %(message)30s')

def worker():

#logging的日志格式必须是字符型,不接受float和int

logging.debug('worker start:%s'%time.time())

time.sleep(2)

logging.debug('worker done:%s'%time.time())

def saihi():

logging.debug('saihi start:%s'%time.time())

time.sleep(2)

worker()

logging.debug('saihi done:%s'%time.time())

t = threading.Thread(target = saihi, name = 't')

x = threading.Thread(target = worker, name = 'x')

w = threading.Thread(target = worker)

t.start()

x.start()

w.start()

#####运行结果#####

[ DEBUG] ( t) saihi start:1374939516.13

[ DEBUG] ( x) worker start:1374939516.13

[ DEBUG] ( Thread-1) worker start:1374939516.13

[ DEBUG] ( t) worker start:1374939518.13

[ DEBUG] ( Thread-1) worker done:1374939518.13

[ DEBUG] ( x) worker done:1374939518.13

[ DEBUG] ( t) worker done:1374939520.13

[ DEBUG] ( t) saihi done:1374939520.13

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值