Python日志系統(tǒng)的使用(基礎版)

Python的日志是通過logging模塊實現(xiàn)的

一、日志的基本使用

1. 日志輸出到控制臺

import logging

logging.warning('This is a warning message')  # will print a message to the console
logging.info('This is a nomal message')  # will not print anything

運行結果:

WARNING:root:This is a warning message

日志的默認級別是warning驮俗,所以上例中吨述,只有warning的信息打印出來澎羞。

1. 日志輸出到文件

import logging

logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This is a debug message')
logging.info('This is a nomal message')
logging.warning('This is a warning message')

運行代碼后驯镊,會在根目錄生成一個example.log,打開該日志文件缘缚,可以看到如下結果:

DEBUG:root:This is a debug message
INFO:root:This is a nomal message
WARNING:root:This is a warning message

注意:basicConfig()調(diào)用前不能進行任何日志的輸出勾笆,否則basicConfig()的配置信息全部失效。

二桥滨、多模塊使用日志

1. 日志輸出到一個終端

# myapp.py
import logging
import mylib

def main():
    logging.basicConfig(filename='myapp.log', level=logging.INFO)
    logging.info('In myapp.py, Started')
    mylib.do_something()
    logging.info('In myapp.py, Finished')

if __name__ == '__main__':
    main()
# mylib.py
import logging

def do_something():
    logging.info('In mylib.py, Doing something')

運行myapp.py后窝爪,打開生成的日志文件myapp.log,可以看到如下結果:

INFO:root:In myapp.py, Started
INFO:root:In mylib.py, Doing something
INFO:root:In myapp.py, Finished

從運行結果可以看出齐媒,如上例實現(xiàn)的多模塊日志蒲每,會根據(jù)方法調(diào)用的先后順序打印日志信息。

2. 日志輸出到一個終端

上面的例子都只能輸出到一個終端喻括,要么是控制臺邀杏,要么是日志文件。
下面的例子將會展示如何將日志信既輸出到控制臺唬血,又輸出到日志文件中:

# myapp.py
import logging
import mylib

# create logger with 'myapp'
logger = logging.getLogger('myapp')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
# file mode set write. myapp.log will be rewrite when every time myapp.py is runned.
fh = logging.FileHandler('myapp.log', mode='w')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

logger.info('In myapp.py, Started')
logger.error('This is a error message')
mylib.do_something()
logger.info('In myapp.py, Finished')
# mylib.py
import logging

# getLogger named myapp
mylib_logger = logging.getLogger('myapp')

def do_something():
    mylib_logger.info('In mylib.py, Doing something')

運行myapp.py望蜡,因為控制臺的日志級別為ERROR,所以控制臺只輸出ERROR級別的信息:

2017-07-05 11:07:36,721 - myapp - ERROR - This is a error message

因為日志文件的日志級別為DEBUG拷恨,所以文件中包含DEBUGDEBUG以上級別的信息:

2017-07-05 11:07:36,721 - myapp - INFO - In myapp.py, Started
2017-07-05 11:07:36,721 - myapp - ERROR - This is a error message
2017-07-05 11:07:36,721 - myapp - INFO - In mylib.py, Doing something
2017-07-05 11:07:36,721 - myapp - INFO - In myapp.py, Finished

了解以上內(nèi)容就可以實現(xiàn)基本的日志功能了脖律,但是如果想要有效的使用Python的日志功能,還有很多東西需要學習腕侄。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末小泉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冕杠,更是在濱河造成了極大的恐慌微姊,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件分预,死亡現(xiàn)場離奇詭異兢交,居然都是意外死亡,警方通過查閱死者的電腦和手機笼痹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門配喳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飘诗,“玉大人,你說我怎么就攤上這事界逛。” “怎么了纺座?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵息拜,是天一觀的道長。 經(jīng)常有香客問我净响,道長少欺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任馋贤,我火速辦了婚禮赞别,結果婚禮上,老公的妹妹穿的比我還像新娘配乓。我一直安慰自己仿滔,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布犹芹。 她就那樣靜靜地躺著崎页,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腰埂。 梳的紋絲不亂的頭發(fā)上飒焦,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音屿笼,去河邊找鬼牺荠。 笑死,一個胖子當著我的面吹牛驴一,可吹牛的內(nèi)容都是我干的休雌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蛔趴,長吁一口氣:“原來是場噩夢啊……” “哼挑辆!你這毒婦竟也來了?” 一聲冷哼從身側響起孝情,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤鱼蝉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后箫荡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魁亦,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年羔挡,在試婚紗的時候發(fā)現(xiàn)自己被綠了洁奈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片间唉。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖利术,靈堂內(nèi)的尸體忽然破棺而出呈野,到底是詐尸還是另有隱情,我是刑警寧澤印叁,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布被冒,位于F島的核電站,受9級特大地震影響轮蜕,放射性物質(zhì)發(fā)生泄漏昨悼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一跃洛、第九天 我趴在偏房一處隱蔽的房頂上張望率触。 院中可真熱鬧,春花似錦汇竭、人聲如沸葱蝗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垒玲。三九已至,卻和暖如春找颓,著一層夾襖步出監(jiān)牢的瞬間合愈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工击狮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留佛析,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓彪蓬,卻偏偏與公主長得像寸莫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子档冬,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容