天天看點

python日志logging

import logging

#簡單将日志列印到螢幕:
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

#配置loggin将日志記錄到文本資訊中
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='./test.log',
                    filemode='w')

# 可見在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參數會被忽略。
#
# format參數中可能用到的格式化串:
# %(name)s Logger的名字
# %(levelno)s 數字形式的日志級别
# %(levelname)s 文本形式的日志級别
# %(pathname)s 調用日志輸出函數的子產品的完整路徑名,可能沒有
# %(filename)s 調用日志輸出函數的子產品的檔案名
# %(module)s 調用日志輸出函數的子產品名
# %(funcName)s 調用日志輸出函數的函數名
# %(lineno)d 調用日志輸出函數的語句所在的代碼行
# %(created)f 目前時間,用UNIX标準的表示時間的浮 點數表示
# %(relativeCreated)d 輸出日志資訊時的,自Logger建立以 來的毫秒數
# %(asctime)s 字元串形式的目前時間。預設格式是 “2003-07-08 16:49:45,896”。逗号後面的是毫秒
# %(thread)d 線程ID。可能沒有
# %(threadName)s 線程名。可能沒有
# %(process)d 程序ID。可能沒有
# %(message)s使用者輸出的消息