14. python 日志模塊logging & logging.handler

1. 通過logging.basicConfig函數(shù)對日志的輸出格式及方式做相關(guān)配置

logging.basicConfig(level=logging.INFO,\

format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',\

datefmt='%a, %d %b %Y %H:%M:%S',\

filename=logfile,

filemode='a')


logging.basicConfig函數(shù)各參數(shù):

filename: 指定日志文件名

filemode: 和file函數(shù)意義相同秃症,指定日志文件的打開模式,'w'或'a'

format: 指定輸出的格式和內(nèi)容吕粹,format可以輸出很多有用信息种柑,如上例所示:

%(levelno)s: 打印日志級別的數(shù)值

%(levelname)s: 打印日志級別名稱

%(pathname)s: 打印當前執(zhí)行程序的路徑,其實就是sys.argv[0]

%(filename)s: 打印當前執(zhí)行程序名

%(funcName)s: 打印日志的當前函數(shù)

%(lineno)d: 打印日志的當前行號

%(asctime)s: 打印日志的時間

%(thread)d: 打印線程ID

%(threadName)s: 打印線程名稱

%(process)d: 打印進程ID

%(message)s: 打印日志信息

datefmt: 指定時間格式匹耕,同time.strftime()

level: 設(shè)置日志級別聚请,默認為logging.WARNING

stream: 指定將日志的輸出流,可以指定輸出到sys.stderr,sys.stdout或者文件稳其,默認輸出到sys.stderr驶赏,當stream和filename同時指定時,stream被忽略


2. logger.handlers

StreamHandler: 將日志信息輸出到sys.stdout, sys.stderr

FileHandler: 將日志信息輸出到磁盤文件

NullHandler:?

WatchedFileHandler: 監(jiān)視文件狀態(tài)既鞠,如果文件被改變了母市,就關(guān)閉當前流,重新打開文件

RotatingFileHandler: 支持循環(huán)日志文件损趋,比如文件大小達到設(shè)定值時患久,會創(chuàng)建一個日志文件

TimeRotatingFileHandler: 定時循環(huán)日志


3. 定義一個初始化log的函數(shù)

import os

import logging

import logging.handlers

def init_log(log_path, level=logging.INFO, when="D", backup=7, format="%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d * %(thread)d %(message)s", datefmt="%m-%d %H:%M:%S"):

? ? ? formatter = logging.Formatter(format, datefmt)

? ? ? logger = logging.getLogger()

? ? ? logger.setLevel(level)

? ? ? dir = os.path.dirname(log_path)

? ? ? if not os.path.isdir(dir):

? ? ? ? ? os.makedirs(dir)

? ? ?handler = logging.handlers.TimedRotatingFileHandler(log_path + ".log", when=when, ?backupCount=backup)

? ? ?handler.setLevel(level)

? ? ?handler.setFormatter(formatter)

? ? ?logger.addHandler(handler)

if __name__ == '__main__':

? ? ?init_log('mylog')

? ? ?logging.info('start')

? ? ?logging.error('has error')


參考:

1.?http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html

2. http://blog.csdn.net/yypsober/article/details/51800120

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椅寺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蒋失,更是在濱河造成了極大的恐慌返帕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篙挽,死亡現(xiàn)場離奇詭異荆萤,居然都是意外死亡,警方通過查閱死者的電腦和手機铣卡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門链韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煮落,你說我怎么就攤上這事敞峭。” “怎么了蝉仇?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵旋讹,是天一觀的道長。 經(jīng)常有香客問我轿衔,道長沉迹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任害驹,我火速辦了婚禮鞭呕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宛官。我一直安慰自己琅拌,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布摘刑。 她就那樣靜靜地躺著进宝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枷恕。 梳的紋絲不亂的頭發(fā)上党晋,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音徐块,去河邊找鬼未玻。 笑死,一個胖子當著我的面吹牛胡控,可吹牛的內(nèi)容都是我干的空扎。 我是一名探鬼主播蝶押,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼蹭越,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锡搜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤瞧掺,失蹤者是張志新(化名)和其女友劉穎耕餐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辟狈,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡肠缔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哼转。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片明未。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壹蔓,靈堂內(nèi)的尸體忽然破棺而出趟妥,到底是詐尸還是另有隱情,我是刑警寧澤庶溶,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布煮纵,位于F島的核電站懂鸵,受9級特大地震影響偏螺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匆光,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一套像、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧终息,春花似錦夺巩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至续镇,卻和暖如春美澳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摸航。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工制跟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酱虎。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓雨膨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親读串。 傳聞我的和親對象是個殘疾皇子聊记,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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