当前位置: 移动技术网 > IT编程>脚本编程>Python > Python logging模块用法示例

Python logging模块用法示例

2018年09月23日  | 移动技术网IT编程  | 我要评论

变形记2017,洪燕华博客,fm2008免cd补丁

本文实例讲述了python logging模块用法。分享给大家供大家参考,具体如下:

logging模块

函数式简单配置

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

logging.basicconfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

  • filename:用指定的文件名创建filedhandler,这样日志会被存储在指定的文件中。
  • filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
  • format:指定handler使用的日志显示格式。
  • datefmt:指定日期时间格式。
  • level:设置rootlogger(后边会讲解具体概念)的日志级别
  • stream:用指定的stream创建streamhandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。若同时列出了filenamestream两个参数,则stream参数会被忽略。

format参数中可能用到的格式化串:

%(name)s logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcname)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用unix标准的表示时间的浮 点数表示
%(relativecreated)d 输出日志信息时的,自logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程id。可能没有
%(threadname)s 线程名。可能没有
%(process)d 进程id。可能没有
%(message)s 用户输出的消息

logging库提供了多个组件:loggerhandlerfilterformatter。logger对象提供应用程序可直接使用的接口,handler发送日志到适当的目的地,filter提供了过滤日志信息的方法,formatter指定日志显示格式。另外,可以通过:logger.setlevel(logging.debug)设置级别,当然,也可以通过fh.setlevel(logging.debug)单对文件流设置某个级别。

def my_logger(filename,leval,file = true,stream = true):
  logger = logging.getlogger()
  formatter = logging.formatter (fmt = '%(asctime)s--%(message)s----%(name)s--%(levelname)s--%(lineno)d',
                  datefmt = '%d/%m/%y %h:%m:%s')
  logger.setlevel(leval)
  if file:
    file_handler = logging.filehandler(filename, encoding='utf-8')
    logger.addhandler(file_handler)
    file_handler.setformatter(formatter)
  if stream:
    stream_handler = logging.streamhandler()
    stream_handler.setformatter(formatter)
    logger.addhandler(stream_handler)
  return logger
logger = my_logger('logging',logging.debug)
logger.warning('warn!!!')

运行结果:

28/08/18 09:48:53--warn!!!----root--warning--27

更多关于python相关内容感兴趣的读者可查看本站专题:《python日志操作技巧总结》、《python函数使用技巧总结》、《python字符串操作技巧汇总》、《python入门与进阶经典教程》及《python文件与目录操作技巧汇总

希望本文所述对大家python程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网