码迷,mamicode.com
首页 > 编程语言 > 详细

Python logging模块

时间:2017-11-05 13:53:11      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:inter   val   bytes   style   技术   src   div   erro   port   

logging模块

 

 

1.列出所有状态并打印到终端。

import logging

logging.debug("test debug")#调试,除错

logging.info("test")#信息

logging.warning("user [xsk] 3")#警告

logging.error("test error")#错误

logging.critical("server is down") #严重

注:严重的警告直接打印到终端,重上往下的优先级。

 

2.将日志打印到文件内。

import logging

logging.basicConfig(filename=example.log,level=logging.INFO)

注:自动创建log文件,并将数据自动打印到文件内。

注:logging.basicConfig():创建日志文件。

注:filename=:输入日志文件名。

注:level=:输入报警级别。

注:输入时,优先级高的将不会输出低优先级的 报警信息。

 

 

3.记录日志时,加入时间。

import logging

logging.basicConfig(filename=example.log,level=logging.INFO,format=%(asctime)s %(message)s,datefmt=%m/%d/%Y %I:%M:%S %p)

注:添加了时间的日志格式变量,可自定义运行格式。

注:format=‘’:用来添加记录日志格式的模块参数。

注:datefmt=‘’:时间参数。

 

 

4、使日志,定义成 终端文件都可以输出。

技术分享

import logging

logger = logging.getLogger(TEST-LOG)#自定义名字

logger.setLevel(logging.DEBUG)#设置最低等级

ch = logging.StreamHandler()#终端输出日志

ch.setLevel(logging.WARNING)#最小有限级

fh = logging.FileHandler("access.log",encoding="utf-8")#文件内的日志

fh.setLevel(logging.ERROR)#最小有限级

fh_formatter = logging.Formatter(%(asctime)s %(filename)s:%(lineno)d %(module)s - %(levelname)s %(message)s)#fh日志格式

ch_formatter = logging.Formatter(%(asctime)s %(filename)s:%(lineno)d %(module)s - %(levelname)s %(message)s)#ch日志格式

fh.setFormatter(fh.formatter)#绑定fh handler

ch.setFormatter(ch_formatter)#绑定ch handler

logger.addHandler(fh)#logger 绑定fh handler

logger.addHandler(ch)#logger 绑定ch handler

logger.warning("ddd")#输出

logger.error("error happend..")#输出v

注:将logger,handler,与formatter绑定。

 

5.定义日志自定义 删除。

(1)按文件大小进行,删除。

import logging

from logging import handlers

logger = logging.getLogger(TEST)

log_file = "timelog.log"

fh = handlers.RotatingFileHandler(filename=log_file,maxBytes=10,backupCount=3,encoding="utf-8")

formatter = logging.Formatter(%(asctime)s %(filename)s:%(lineno)d %(module)s - %(levelname)s %(message)s)

fh.setFormatter(formatter)

logger.addHandler(fh)

logger.warning("test1")

logger.warning("test2")

logger.warning("test3")

注:需要使用handlers模块

注:handlers.RotatingFileHandler():来进行定义。

filename=:文件名

maxBytes=:定义最大值

backupCount=:定义最多备份的文件数

encodoing=:定义字符编码。

 

(2)按时间进行,删除。

import logging

from logging import handlers

logger = logging.getLogger(TEST)

log_file = "timelog.log"

fh = handlers.TimedRotatingFileHandler(filename=log_file,when="S",interval=5,backupCount=3)

formatter = logging.Formatter(%(asctime)s %(filename)s:%(lineno)d %(module)s - %(levelname)s %(message)s)

fh.setFormatter(formatter)

logger.addHandler(fh)

import time

logger.warning("test1")

time.sleep(2)

logger.warning("test2")

time.sleep(2)

logger.warning("test3")

time.sleep(2)

logger.warning("test4")

注:实现了,每5秒钟备份一个日志

注:handlers.TimedRotatingFileHandler():实现时间备份删除。

wen=:选择时间类型参数。

interval=:选择对应参数的数量。

backupCount=:定义最多备份的文件数

encodoing=:定义字符编码

 

Python logging模块

标签:inter   val   bytes   style   技术   src   div   erro   port   

原文地址:http://www.cnblogs.com/xiangsikai/p/7787135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!