日志
一、日志的作用:
记录在系统上面进行的操作 记录系统运行状态 出现问题也能很快定位问题
二、日志组件:
1、loggers:日志器
2、handler:处理器
3、formatter:格式器
方法一:封装
1 import logging 2 3 def test_log(): 4 # 创建一个日志器 别的文件使用日志 就用到这个日志器 5 logger=logging.getLogger() 6 # 设置日志级别 日志信息输出info以上的级别信息 7 logger.setLevel(logging.INFO) 8 # 创建一个格式器 9 fmt='%(asctime)s %(filename)s %(levelname)s %(funcName)s %(message)s' 10 formater=logging.Formatter(fmt) 11 # 处理器 Handler 要把日志信息输出到哪 12 # 创建一个输出到控制台的处理器 13 sh=logging.StreamHandler() 14 # 把设置的日志信息放到控制台中 15 logger.addHandler(sh) 16 # 控制台设置格式器 17 sh.setFormatter(formater) 18 19 # 在文件里面生成日志信息 创建处理器 文件处理器 处理器的作用:把日志信息输出到指定的位置 20 # 文件处理器创建 日志信息存放在哪 21 fh=logging.FileHandler('log1.log',encoding='utf-8') 22 # 需要把日志信息放到文件处理器里面去 23 logger.addHandler(fh) 24 # 给fh设置格式 25 fh.setFormatter(formater) 26 return logger
方法二:自定义配置文件log.ini
[loggers] keys=root [handlers] keys=fileHandler,streamHandler [formatters] keys=simpleFormatter [logger_root] level=INFO handlers=fileHandler,streamHandler [handler_fileHandler] class=FileHandler level=INFO formatter=simpleFormatter args=('./mylog.log','a','utf-8') [handler_streamHandler] class=StreamHandler level=INFO formatter=simpleFormatter [formatter_simpleFormatter] format=%(asctime)s %(filename)s %(levelname)s %(funcName)s %(message)s
import logging from logging import config # 这里之所以不直接写入日志的文件的路径,是因为使用日志时候的相对路径的层级不同,会引发报错。 def get_log(path): """ 获取日志ini文件 :param path: 日志文件的相对路径 :return: 日志类 """ logging.config.fileConfig(path) return logging.getLogger()
log = get_log(os.path.join(CONFIG_DIR, 'log.ini'))
本文来自博客园,作者:术科术,转载请注明原文链接:https://www.cnblogs.com/shukeshu/p/15583083.html