【Python】Logging模块详解

最近写一个工程Logging模块一直出现奇怪bug调了一整天,特此记录logging的主要使用方法和一些debug。

基本用法

logging一般为输出到屏幕,和输出到文件两种用法。
最常用的配置方式为logging.basicConfig()

import logging

logging.basicConfig( # 配置日志的输出方式及格式
  level=logging.DEBUG,
  filename='log.txt',
  filemode='a',
  format='%(asctime)s %(filename)s %(message)s',
)

logging.info('[INFO]:calling method i() in h()')
logging.error('[Error]:Soory,Exception occured')
logging.debug()
logging.setLevel()
logging.addFilter()

其中logging.setLevel有五个级别,只输出所设定级别及以上的信息

Level Describtion
DEBUG details
INFO information
WARNING unforecasted problem but not important
ERROR some functions of program don’t work
CRITICAL program don’t work

配置handler

另一种使用方式可以更自由,即句柄配置

def setup_logging(folder_path,filename):
    """Create and init logger.  
    Args:
        logfolder_path:  "/log/"
        filename:        "Alien-phi-0.001-mu-14.txt"
    Return:
        logger:           
    """
    logfile = os.path.join(folder_path, filename)
    logging.basicConfig(
        level = logging.INFO,
        format ='%(asctime)s - %(levelname)s - %(message)s',
        datefmt = '%y-%m-%d %H:%M',
        filename = logfile,
        filemode = 'a')
  
    filehandler = logging.FileHandler(logfile,encoding='utf-8')

    logger = logging.getLogger()
    logger.addHandler(filehandler)

    return logger

if __name__ == "__main__":

    fold = os.getcwd()
    filename = "1.log"
    logger = setup_logging(fold,filename)
    logger.info("test")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 2,009评论 0 6
  • 在现实生活中,记录日志非常重要。银行转账时会有转账记录;飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中...
    chliar阅读 789评论 1 0
  • logging模块是python中的常用模块,我计划用两到三篇文章来详细的介绍一下这个模块的用法。第一篇文章主要是...
    Stansosleepy阅读 7,237评论 1 7
  • 本文章是我大概三年前,在上家单位使用 Python 工作时结合官方文档做的整理。现在 Python 官方文档听说已...
    好吃的野菜阅读 217,487评论 14 232
  • ——我读《伪装成独白的爱情》 第一次读这种风格的小说。从开始的摸不着头绪,慢慢读出了...
    大玉儿之王阅读 472评论 1 8