logging模块

汪正卿
2023-12-01
import logging

# args和init_args是之前获得的参数解析器
logging.basicConfig(filename=args.log_file, level=args.verbose)         # 对日志的输出格式及方式做相关配置。filename日志信息输出到的日志文件名,level输出的日志等级
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
logging.info(init_args)   # 在控制台输出init_args

解释:

  • logging.getLogger(name)进行初始化,获取日志实例,name可以不填
  • logging.StreamHandler() # 创建StreamHandler对象
  • addHandler()用于加载StreamHandler对象,StreamHandler控制台输出日志
    使用这个Handler可以向类似与sys.stdout或者sys.stderr的任何文件对象(file object)输出信息
  • logging是python的日志库,是一个类。info是logging的一个属性。logging.info是输出日志的信息。

参考链接:logging.basicConfig函数[这里介绍了日志格式说明]
logging.basicConfig函数中,可以指定日志的输出格式format,这个参数可以输出很多有用的信息,如上例所示:

》》logging.basicConfig函数各参数:

filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,‘w’或’a’
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
%(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: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

 类似资料: