Python: logging日志模块简单示例
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?????????Python的logging模塊提供了通用的日志系統(tǒng),可以方便第三方模塊或者是應(yīng)用使用。這個(gè)模塊提供不同的日志級(jí)別,并可以采用不同的方式記錄日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己實(shí)現(xiàn)具體的日志記錄方式。
? ? ? ? logging模塊與log4j的機(jī)制是一樣的,只是具體的實(shí)現(xiàn)細(xì)節(jié)不同。模塊提供logger,handler,filter,formatter。
? ? ? ? logger:提供日志接口,供應(yīng)用代碼使用。logger最長用的操作有兩類:配置和發(fā)送日志消息。可以通過logging.getLogger(name)獲取logger對(duì)象,如果不指定name則返回root對(duì)象,多次使用相同的name調(diào)用getLogger方法返回同一個(gè)logger對(duì)象。
? ? ? ? handler:將日志記錄(log record)發(fā)送到合適的目的地(destination),比如文件,socket等。一個(gè)logger對(duì)象可以通過addHandler方法添加0到多個(gè)handler,每個(gè)handler又可以定義不同日志級(jí)別,以實(shí)現(xiàn)日志分級(jí)過濾顯示。
? ? ? ? filter:提供一種優(yōu)雅的方式?jīng)Q定一個(gè)日志記錄是否發(fā)送到handler。
? ? ? ? formatter:指定日志記錄輸出的具體格式。formatter的構(gòu)造方法需要兩個(gè)參數(shù):消息的格式字符串和日期字符串,這兩個(gè)參數(shù)都是可選的。
? ? ? ? 與log4j類似,logger,handler和日志消息的調(diào)用可以有具體的日志級(jí)別(Level),只有在日志消息的級(jí)別大于logger和handler的級(jí)別。
????????一個(gè)簡單logging.config模塊導(dǎo)入引用,從終端輸出消息。 可以以此為基礎(chǔ),輔助代碼調(diào)試
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on Dec 19, 2012@author: honghe ''' import logging import logging.configlogging.config.fileConfig('logging.ini') logger = logging.getLogger('simpleLogger') msg = 'hello' logger.debug('msg: %s', msg) logging引用的配置文件: logging.ini[loggers] keys: root, simpleLogger[handlers] keys: consoleHandler[formatters] keys: simpleFormater[logger_root] level: DEBUG handlers: consoleHandler[logger_simpleLogger] level: DEBUG handlers: consoleHandler qualname: simpleLogger propagate: 0[handler_consoleHandler] class: StreamHandler formatter: simpleFormater args: (sys.stdout,)[formatter_simpleFormater] format: %(levelname)s %(message)s
轉(zhuǎn)載于:https://my.oschina.net/leopardsaga/blog/97004
總結(jié)
以上是生活随笔為你收集整理的Python: logging日志模块简单示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机实现4位数以内的加减法
- 下一篇: 读jQuery之二十(Deferred对