python logging模块

import logging
logging.debug(msg, *args, **kwargs)    #创建一条严重级别为DEBUG的日志记录
logging.info(msg, *args, **kwargs)    #创建一条严重级别为INFO的日志记录
logging.warning(msg, *args, **kwargs)    #创建一条严重级别为WARNING的日志记录
logging.error(msg, *args, **kwargs)    #创建一条严重级别为ERROR的日志记录
logging.critical(msg, *args, **kwargs)    #创建一条严重级别为CRITICAL的日志记录
logging.log(level, *args, **kwargs)    #创建一条严重级别为level的日志记录
logging.basicConfig(**kwargs)    #对root logger进行一次性配置
日志等级是从上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR < CRITICAL
(记录,日志)
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s  %(filename)s[line:%(lineno)d]  %(levelname)s  %(message)s',
                    datefmt='%a %d %b %Y %H:%M:%S',
                    filename='test.log',
                    filemode='w')


logging.debug("This is a debug log.")#  =logging.log(logging.DEBUG, "This is a debug log.")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")
#既可以在test中看到,也可以在运行后的结果中看到
import logging
logger = logging.getLogger()
fh=logging.FileHandler('test.log')#创建一个handler,用于写入日志文件
ch=logging.StreamHandler()#再创建一个handler,用于输出到控制台
formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh.setFormatter(formatter)
ch.setFormatter(formatter)

logger.addHandler(fh)
logger.addHandler(ch)

logger.setLevel(logging.DEBUG)#修改输出
logging.debug("This is a debug log.")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")
捕捉异常,用traceback记录:
import os.path
import time
import logging
# 创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.INFO)  # Log等级总开关

# 创建一个handler,用于写入日志文件
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
log_path = os.path.dirname(os.getcwd()) + '/Logs/'
log_name = log_path + rq + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)  # 输出到file的log等级的开关

# 定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
logger.addHandler(fh)
# 使用logger.XX来记录错误,这里的"error"可以根据所需要的级别进行修改
try:
    open('/path/to/does/not/exist', 'rb')
except (SystemExit, KeyboardInterrupt):
    raise
except Exception as e:
    logger.error('Failed to open file', exc_info=True)

 

posted @ 2018-10-27 17:26  ErnestLi  阅读(62)  评论(0)    收藏  举报