1、控制台基本输出
代码:
import logging
logging.info("hhhhhhh info message")
logging.debug("ddddddd debug message")
logging.warning("wwwww warning message")
logging.error("eeeeee error message")
logging.critical("ccccc critical message")
控制台输出:
默认输出级别大于等于warning的日志。
2、自定义日志格式,控制台输出&&本地文件输出
代码:
# -*- coding:utf-8 -*-
import logging
import os
class log:
def __init__(self):
# 文件命名
self.filename=os.path.join(os.getcwd(),"api/","log.txt")
self.logger=logging.getLogger()
self.logger.setLevel(logging.DEBUG)
#日志输出格式
self.formatter=logging.Formatter("%(asctime)s-%(filename)s-%(levelname)s-%(message)s")
def log_out(self,level,message):
# 创建一个StreamHandler,用于输出到控制台
sh=logging.StreamHandler()
sh.setLevel(logging.DEBUG)
sh.setFormatter(self.formatter)
self.logger.addHandler(sh)
# 创建一个FileHandler,用于写到本地
fh=logging.FileHandler(self.filename)
fh.setLevel(logging.DEBUG)
fh.setFormatter(self.formatter)
self.logger.addHandler(fh)
if level=="info":
self.logger.info(message)
elif level=="debug":
self.logger.debug(message)
elif level=="warning":
self.logger.warning(message)
elif level=="error":
self.logger.error(message)
elif level=="critical":
self.logger.critical(message)
#避免日志重复输出
self.logger.removeHandler(sh)
self.logger.removeHandler(fh)
#关闭打开的文件
sh.close()
fh.close()
def info(self,message):
self.log_out("info",message)
def debug(self,message):
self.log_out("debug",message)
def warning(self,message):
self.log_out("warning",message)
def error(self,message):
self.log_out("error",message)
def critical(self,message):
self.log_out("critical",message)
if __name__=="__main__":
l=log()
l.info("this is info message")
l.debug("this is debug message")
l.warning("this is warning message")
l.error("this is error message")
l.critical("this is critical message")
控制台输出:
本地日志文件log.txt输出: