logging的初级用法:
# -*- coding:utf-8 -*-
import logging
# 默认的日志输出级别为warning
# 使用baseConfig()来指定日志输出级别
print("this is print log")
import logging
# 输出格式和添加一些公共信息
logging.basicConfig(format="%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s",
datefmt="%Y-%m-%d %H:%M:%S", level=logging.DEBUG)
logging.basicConfig(filename='demo.log', filemode='w', level=logging.DEBUG)
logging.debug("This is debug log1")
logging.info("This is info log")
logging.warning("This is warning log")
logging.error("This is error log")
logging.critical("This is critical log")
logging的高级用法:
# -*- coding:utf-8 -*-
import logging
# 高级用法
# 记录器
logger = logging.getLogger('name') # 获取logger,name自己设置
logger.setLevel(logging.DEBUG) #设置等级
# 处理器handler,即控制台handler
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)
# 没有给handler指定日志级别,将使用logger的级别
# 文件handler,日志内容保存在filename.log文件中,同时也可以指定路径,如root/filename.log
fileHandler = logging.FileHandler(filename='filename.log')
fileHandler.setLevel(logging.INFO)
# formatter格式
formatter = logging.Formatter("%(asctime)s|%(levelname)-8s|%(filename)10s:%(lineno)4s|%(message)s") # -表示右对齐,不带-表示左对齐,%(keys)s固定格式
# 给处理器设置格式
consoleHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
# 记录器要设置处理器
logger.addHandler(consoleHandler)
logger.addHandler(fileHandler)
# 定义一个过滤器
flt = logging.Filter("cn.cccb")
# 关联过滤器
# logger.addFilter(flt)
fileHandler.addFilter(flt)
# 打印日志的代码
logger.debug("This is debug log1")
logger.info("This is info log")
logger.warning("This is warning log")
logger.error("This is error log")
logger.critical("This is critical log")