python 日志控制管理

  • 日志模块 导入标准库 import logging
  • 日志配置
	logging.basicConfig(level=logging.INFO,#日志的级别  必须设置
                    format="%(asctime)s--%(name)s--%(levelname)s--%(message)s")
                    #打印的日志格式
	logging.debug("debug级别的,下边的日志都打印输出")  
    logging.info("该级别设置之后,debug级别的不打印")  
    logging.warning("打印warning 向下的日志") 
    logging.error("打印error 向下的日志!!!") 
    logging.critical("输出啥你看点啥吧") 
  • 日志格式内容
    %(levelno)s:打印日志级别的数值
    %(levelname)s:打印日志级别的名称
    %(pathname)s:打印当前执行程序的路径
    %(filename)s:打印当前执行程序名
    %(funcName)s:打印日志的当前函数
    %(lineno)d:打印日志的当前行号
    %(asctime)s:打印日志的时间
    %(thread)d:打印线程ID
    %(threadName)s:打印线程名称
    %(process)d:打印进程ID
    %(message)s:打印日志信息

  • 日志设置同时控制台展示及输出到文件

  • 使用FileHander和StreamHandler的对象用于处理文件输出和控制台输出

import logging
logger = logging.getLogger("my_log")
logger.setLevel(level=logging.INFO) # 输出log级别的信息
#使日志输出到文件
handler = logging.FileHandler("./logs/log.txt",maxBytes=1 * 1024, backupCount=10)# 指定log文件大小及保存个数
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s  - %(message)s')
handler.setFormatter(formatter)
#设置日志输出到控制台上
shlog = logging.StreamHandler()
shlog.setLevel(logging.INFO)
# 将log信息同时添加文件处理器和控制台
logger.addHandler(handler)
logger.addHandler(shlog)

# 打印日志
logger.info("特务1")
logger.debug("抓特务")
logger.warning("特务没抓找il.")
logger.info("继续抓")
  • [ ] 异常日志记录
try:
    # 这里打开一个并不存在的文件
    open("sklearn.txt", "rb")
except Exception:
    # exc_info=True 一并日志记录系统抛出的异常信息,False则不记录
    logger.error("Faild to open sklearn.txt,Exception as following:", exc_info=True)
logger.info("Finish")
## 下边代码是logging 模块的异常代码处理格式,其中exc_info=True ,这个是将系统的异常信息也一并打印出来,便于跟踪log信息
    def exception(self, msg, *args, exc_info=True, **kwargs):
        """
        Convenience method for logging an ERROR with exception information.
        """
        self.error(msg, *args, exc_info=exc_info, **kwargs)

猜你喜欢

转载自blog.csdn.net/u013279518/article/details/89182863