Python中的logging使用

Python中自帶了logging庫磷杏,可以提供打印日志对竣、記錄日志文件庇楞、根據(jù)時間日志滾動、根據(jù)文件大小日志滾動否纬、過期文件刪除的功能吕晌。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import logging
import logging.handlers #日志滾動及刪除使用

#1.設置log日志記錄格式及記錄級別
#level記錄級別包括DEBUG/INFO/WARNING/ERROR/CRITICAL,級別依次上升烦味,log只會輸出保存設置的級別及以上的日志聂使。如果設置level=logging.DEBUG,則所有級別日志都會輸出保存壁拉、如果level=logging.CRITICAL谬俄,則只輸出保存CRITICAL級別日志
#format輸出格式levelname級別名、asctime 時間弃理、filename所在文件名溃论、message記錄內(nèi)容
#datefmt 時間格式
#filename 要保存的文件名
#a寫入模式,a則每次啟動腳本時在原有文件中繼續(xù)添加痘昌;w則每次啟動腳本會重置文件然后記錄
logging.basicConfig(level=logging.INFO,
                format='%(levelname)s: %(asctime)s %(filename)s %(message)s',
                datefmt='%Y-%m-%d %A %H:%M:%S',
                filename='myapp.log',
                filemode='a')

#2.設置log日志的標準輸出打印钥勋,如果不需要在終端輸出結(jié)果可忽略
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(levelname)s: %(asctime)s %(filename)s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

#3.設置log日志文件按時間拆分記錄,并保存幾個歷史文件辆苔,如果不需要拆分文件記錄可忽略
#class logging.handlers.WatchedFileHandler(filename, mode='a', encoding=None, delay=False)
#例:設置每天保存一個log文件算灸,以日期為后綴,保留7個舊文件驻啤。
myapp = logging.getLogger()
myapp.setLevel(logging.INFO)
formatter = logging.Formatter('%(levelname)s: %(asctime)s %(filename)s %(message)s')
filehandler = logging.handlers.TimedRotatingFileHandler("myapp.log", when='d', interval=1, backupCount=7)#每 1(interval) 天(when) 重寫1個文件,保留7(backupCount) 個舊文件菲驴;when還可以是Y/m/H/M/S
filehandler.suffix = "%Y-%m-%d_%H-%M-%S.log"#設置歷史文件 后綴
filehandler.setFormatter(formatter)
myapp.addHandler(filehandler)

#4.設置log日志文件按文件大小拆分記錄,并保存幾個歷史文件骑冗,如果不需要拆分文件記錄可忽略
#class logging.handlers.RotatingFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0)
myapp = logging.getLogger()
myapp.setLevel(logging.INFO)
formatter = logging.Formatter('%(levelname)s: %(asctime)s %(filename)s %(message)s')
filehandler = logging.handlers. RotatingFileHandler("myapp.log", mode='a', maxBytes=1024, backupCount=2)#每 1024Bytes重寫一個文件,保留2(backupCount) 個舊文件
filehandler.setFormatter(formatter)
myapp.addHandler(filehandler)


#使用
logging.debug('debug message : %s , result: %s',info,result)  
logging.info('info message')  
logging.warning('warning message')  
logging.error('error message')  
logging.critical('critical message') 

輸出format參數(shù)中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 數(shù)字形式的日志級別
%(levelname)s 文本形式的日志級別
%(pathname)s 調(diào)用日志輸出函數(shù)的模塊的完整路徑名赊瞬,可能沒有
%(filename)s 調(diào)用日志輸出函數(shù)的模塊的文件名
%(module)s 調(diào)用日志輸出函數(shù)的模塊名
%(funcName)s 調(diào)用日志輸出函數(shù)的函數(shù)名
%(lineno)d 調(diào)用日志輸出函數(shù)的語句所在的代碼行
%(created)f 當前時間先煎,用UNIX標準的表示時間的浮 點數(shù)表示
%(relativeCreated)d 輸出日志信息時的,自Logger創(chuàng)建以 來的毫秒數(shù)
%(asctime)s 字符串形式的當前時間巧涧。默認格式是 “2003-07-08 16:49:45,896”薯蝎。逗號后面的是毫秒
%(thread)d 線程ID“可能沒有
%(threadName)s 線程名占锯。可能沒有
%(process)d 進程ID缩筛⊙萄耄可能沒有
%(message)s用戶輸出的消息

**注:1和3/4只設置一個就可以,如果同時設置了1和3歪脏,log日志中會出現(xiàn)一條記錄存了兩遍的問題疑俭。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市婿失,隨后出現(xiàn)的幾起案子钞艇,更是在濱河造成了極大的恐慌,老刑警劉巖豪硅,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哩照,死亡現(xiàn)場離奇詭異,居然都是意外死亡懒浮,警方通過查閱死者的電腦和手機飘弧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砚著,“玉大人次伶,你說我怎么就攤上這事』拢” “怎么了冠王?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舌镶。 經(jīng)常有香客問我柱彻,道長,這世上最難降的妖魔是什么餐胀? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任哟楷,我火速辦了婚禮,結(jié)果婚禮上否灾,老公的妹妹穿的比我還像新娘卖擅。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布磨镶。 她就那樣靜靜地躺著溃蔫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琳猫。 梳的紋絲不亂的頭發(fā)上伟叛,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音脐嫂,去河邊找鬼统刮。 笑死,一個胖子當著我的面吹牛账千,可吹牛的內(nèi)容都是我干的侥蒙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼匀奏,長吁一口氣:“原來是場噩夢啊……” “哼鞭衩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娃善,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤论衍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后聚磺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坯台,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年瘫寝,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜒蕾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡焕阿,死狀恐怖咪啡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捣鲸,我是刑警寧澤瑟匆,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布闽坡,位于F島的核電站栽惶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疾嗅。R本人自食惡果不足惜外厂,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望代承。 院中可真熱鬧汁蝶,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幔亥,卻和暖如春耻讽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帕棉。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工针肥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人香伴。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓慰枕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親即纲。 傳聞我的和親對象是個殘疾皇子具帮,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)低斋,斷路器匕坯,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • 在應用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統(tǒng)計分析...
    時待吾閱讀 5,057評論 1 13
  • 在應用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況拔稳,周期性的記錄到文件中供其他應用進行統(tǒng)計分析...
    時待吾閱讀 4,991評論 0 6
  • logging模塊介紹: logging是python內(nèi)置的標準庫模塊葛峻,模塊提供不同的日志級別,并可以采用不同的方...
    4ffde5305e8f閱讀 2,848評論 0 2
  • Day05的課程要點記錄詳細教程地址:Day5 - 常用模塊學習 | 第四篇:模塊 一巴比、模塊介紹 1.1 定義 模...
    乘風逐月閱讀 447評論 0 1