Python-日志模块logging的使用

通过logging产生日志时,需要先定义:

import logging

# 得到一个日志收集器,logger
# 记录日志的笔,可以写内容
# logger 就是笔,专门去记录py这样的事项
logger = logging.getLogger('py')
# 设置笔的级别
logger.setLevel('INFO')

# 显示的东西,Handler,相当于笔记本,logger可以在笔记本上写如信息
# 默认笔记本:StreamHandler,输出到控制台
handler = logging.StreamHandler()
# 设置输出到控制台的日志的级别
handler.setLevel('INFO')
# 设置格式
fmt_handler = logging.Formatter(style='{', fmt="{asctime}:{name}:{levelname}:{filename}:{lineno}:{message}")
# handler设置格式
handler.setFormatter(fmt_handler )
# 把笔与笔记本捆绑起来
logger.addHandler(handler)

# 另一个handler
file_handler = logging.FileHandler('demo.log', encoding='utf-8')
# 设置输出到日志文件的日志的级别
file_handler.setLevel('ERROR')
fmt_file_handler = logging.Formatter(fmt="%(asctime)s:%(name)s:%(levelname)s:%(filename)s:%(lineno)s:%(message)s")
# file_handler设置格式
file_handler.setFormatter(fmt_file_handler)
logger.addHandler(file_handler)

# info级别的信息如果要显示,必须要设置等级
logger.info('操作信息')
logger.error('错误信息')

这些代码我们可以封装成函数,方便后续调用:

import logging


def get_log(name='py',
            level='INFO',
            fmt='%(asctime)s:%(name)s:%(levelname)s:%(filename)s:%(lineno)s:%(message)s',
            file='demo.log',
            ):
    logger = logging.getLogger(name)
    logger.setLevel(level)

    # 默认笔记本:StreamHandler,输出到控制台
    handler = logging.StreamHandler()
    handler.setLevel(level)
    fmt_handler = logging.Formatter(fmt=fmt)
    handler.setFormatter(fmt_handler)
    logger.addHandler(handler)

    # 另一个handler
    file_handler = logging.FileHandler(file, encoding='utf-8')
    file_handler.setLevel(level)
    fmt_file_handler = logging.Formatter(fmt=fmt)
    file_handler.setFormatter(fmt_file_handler)
    logger.addHandler(file_handler)
    return logger


logger = get_log()
logger.info('操作信息')
logger.error('错误信息')

运行结果:

 demo.log记录内容:

 封装好以后的logging就相当于loguru,可根据个人习惯选择使用哪种方式。


版权声明:本文为Ly_LittleStar原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。