【转】Python 函数—logging.basicConfig 基础

1 篇文章 0 订阅
1 篇文章 0 订阅
简单将日志打印到屏幕:
[python]  view plain  copy
  1. import logging  
  2. logging.debug('debug message')  
  3. logging.info('info message')  
  4. logging.warning('warning message')  
  5. logging.error('error message')  
  6. logging.critical('critical message')  

输出:

WARNING:root:warning message
ERROR:root:error message
CRITICAL:root:critical message

可见,默认情况下python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默认的日志格式为日志级别:Logger名称:用户输出消息。

html]  view plain  copy
  1. logging.basicConfig函数各参数:  
  2. filename: 指定日志文件名  
  3. filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'  
  4. format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:  
  5.  %(levelno)s: 打印日志级别的数值  
  6.  %(levelname)s: 打印日志级别名称  
  7.  %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]  
  8.  %(filename)s: 打印当前执行程序名  
  9.  %(funcName)s: 打印日志的当前函数  
  10.  %(lineno)d: 打印日志的当前行号  
  11.  %(asctime)s: 打印日志的时间  
  12.  %(thread)d: 打印线程ID  
  13.  %(threadName)s: 打印线程名称  
  14.  %(process)d: 打印进程ID  
  15.  %(message)s: 打印日志信息  
  16. datefmt: 指定时间格式,同time.strftime()  
  17. level: 设置日志级别,默认为logging.WARNING  
  18. stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略  
 

灵活配置日志级别,日志格式,输出位置

[python]  view plain  copy
  1. import logging  
  2. logging.basicConfig(level=logging.DEBUG,  
  3.                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',  
  4.                     datefmt='%a, %d %b %Y %H:%M:%S',  
  5.                     filename='/tmp/test.log',  
  6.                     filemode='w')  
  7.   
  8. logging.debug('debug message')  
  9. logging.info('info message')  
  10. logging.warning('warning message')  
  11. logging.error('error message')  
  12. logging.critical('critical message')  
查看输出:
cat /tmp/test.log 
Mon, 05 May 2014 16:29:53 test_logging.py[line:9] DEBUG debug message
Mon, 05 May 2014 16:29:53 test_logging.py[line:10] INFO info message
Mon, 05 May 2014 16:29:53 test_logging.py[line:11] WARNING warning message
Mon, 05 May 2014 16:29:53 test_logging.py[line:12] ERROR error message
Mon, 05 May 2014 16:29:53 test_logging.py[line:13] CRITICAL critical message

可见在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有
filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值