首页 > 其他 > 详细

pyhon模块之日志模块

时间:2017-04-10 00:37:12      阅读:239      评论:0      收藏:0      [点我收藏+]
import logging

#最简单的用法
# logging.warning("user bob attempt 3 times password")
# logging.critical(‘server is down‘)


#logging一共有5个日志级别
# debug
# info
# warning
# error
# critical


#可以把日志输出的文件中
#这个的意思是 只记录info级别及info级别之上的日志,并输出到log1.txt文件中
# logging.basicConfig(filename=‘log1.txt‘,level=logging.INFO)
# logging.critical(‘server is down‘)
# logging.debug(‘password is error‘)
# logging.info(‘time is over‘)


#下面这种格式把时间加上了,

# logging.basicConfig(filename=‘log2.txt‘,level=logging.INFO,
# format=‘%(asctime)s %(message)s‘,datefmt=‘%m/%d/%Y:%I:%M:%S %p‘)
# logging.critical(‘server is down‘)
# logging.debug(‘password is error‘)
# logging.info(‘time is over‘)



#上面的方法要么只打印到屏幕上,要么只打印到文件中,那么如果想同时打印到屏幕和文件中该怎么办?

logger = logging.getLogger(‘TEST-LOG‘) #首先获取一个logger object
logger.setLevel(logging.DEBUG) #设定一个全局的日志级别


ch = logging.StreamHandler() #打印到屏幕上
ch.setLevel(logging.DEBUG) #设定打印到屏幕是日志级别,,如果局部的优先级高于全局的,那么局部的优先级生效,如果局部的优先级低于全局的优先级,那么全局的优先级
#高



fh = logging.FileHandler("log3.txt") #打印到文件中log3.txt中
fh.setLevel(logging.WARNING) #设定打印到文件中的日志级别,如果局部的优先级高于全局的,那么局部的优先级生效,如果局部的优先级低于全局的优先级,那么全局的优先级
#高



formatter = logging.Formatter(‘%(asctime)s -%(name)s -%(levelname)s -%(message)s‘) #设定输出格式
#这里的格式还有
# %(filenames)s 代码程序的路径+文件名
# %(funcName)s 打印这段日志的函数的名称
# %(lineno)s 打印这段日志的行数
# %(module)s 打印这个日志的文件名
# %(msecs)d 打印多少秒
# %(process)d 打印进程id
# %(processName)s 打印进程名
# %(thread)d 打印线程名
# %(threadName)s 打印线程名

ch.setFormatter(formatter) #设定输出到屏幕的日志的格式
fh.setFormatter(formatter) #设定输出到文件的日志的格式



logger.addHandler(ch) #注册打印到屏幕到Handler中
logger.addHandler(fh) #注册打印到文件到Handler中

pyhon模块之日志模块

原文:http://www.cnblogs.com/bainianminguo/p/6687032.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!