python3 日志logger

import logging

#创建 logger对象
logger=logging.getLogger('sihy')
#设置 logger级别
logger.setLevel(logging.INFO)

#创建 handler日志处理器
fh=logging.FileHandler('test.log',encoding='utf-8')
#创建 handler在控制台打印
ch=logging.StreamHandler()

# 设置日志输出格式
formatter=logging.Formatter(
    fmt="%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s",
    datefmt="%Y-%m-%d %X"
)

# 给 handler设置输出日志格式
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 为 logger 添加日志处理器
logger.addHandler(fh)
logger.addHandler(ch)


# 输出日志
logger.debug('我是 debug')
logger.warning('我是 warn')
logger.info('我是 info')
logger.error('我是 error')

输出结果

2021-01-14 19:43:16 WARNING [sihy] [log_demo.py (<module>:30] - 我是 warn
2021-01-14 19:43:16 INFO [sihy] [log_demo.py (<module>:31] - 我是 info
2021-01-14 19:43:16 ERROR [sihy] [log_demo.py (<module>:32] - 我是 error

没有输出 debug,因为设置了logger.setLevel(logging.INFO) 是 info,只打印比 info 小的级别

关于日志多次打印
使用单例模式,无论创建多少个实例,也只创建一个

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容