一、创建日志配置类
# encoding=utf-8
import logging
import time
import os
# 创建存储日志的路径
log_path = os.getcwd()
class Log(object):
def __init__(self):
# 文件的命名
self.logname = os.path.join(log_path, '%s.log' % time.strftime('%Y_%m_%d'))
# 创建日志对象
self.logger = logging.getLogger(__name__)
self.logger.setLevel(logging.DEBUG)
# 日志输出格式
self.formatter = logging.Formatter('[%(asctime)s] - %(filename)s] - %(levelname)s: %(message)s')
def config(self, level, message):
# 创建一个FileHandler,用于写到本地
file_handler = logging.FileHandler(self.logname, 'a', encoding='utf-8')
file_handler.setLevel(logging.DEBUG) # 设置等级
file_handler.setFormatter(self.formatter) # 把输出格式加入输出方式
self.logger.addHandler(file_handler) # 把以上设置加入对象
# 创建一个StreamHandler,用于输出到控制台
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
stream_handler.setFormatter(self.formatter)
self.logger.addHandler(stream_handler)
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)
# 这两行代码是为了避免日志输出重复问题
self.logger.removeHandler(file_handler)
self.logger.removeHandler(stream_handler)
# 关闭打开的文件
file_handler.close()
def debug(self, message):
self.__console('debug', message)
def info(self, message):
self.__console('info', message)
def warning(self, message):
self.__console('warning', message)
def error(self, message):
self.__console('error', message)
日志输出格式参数
%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别的名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行号
%(asctime)s:打印日志的时间
%(thread)d:打印线程ID
%(threadName)s:打印线程名称
%(process)d:打印进程ID
%(message)s:打印日志信息
二、使用日志
from log_init import Log
log.info(“这是个Info日志")
最后修改时间:2020-09-03 10:25:58
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




