python 列印模組 Python 日誌列印模組

2021-10-17 02:47:08 字數 3481 閱讀 4269

1 logging模組簡介

logging模組是python內建的標準模組,主要用於輸出執行日誌,可以設定輸出日誌的等級、日誌儲存路徑、日誌檔案回滾等;相比print,具備如下優點:

可以通過設定不同的日誌等級,在release版本中只輸出重要資訊,而不必顯示大量的除錯資訊;

print將所有資訊都輸出到標準輸出中,嚴重影響開發者從標準輸出中檢視其它資料;logging則可以由開發者決定將資訊輸出到什麼地方,以及怎麼輸出;

2 logging模組使用

2.1 基本使用

配置logging基本的設定,然後在控制台輸出日誌,

1 importlogging2 logging.basicconfig(level = logging.info,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')3 logger = logging.getlogger(__name__)4

5 logger.info("start print log")6 logger.debug("do something")7 logger.warning("something maybe fail.")8 logger.info("finish")

logging中可以選擇很多訊息級別,如debug、info、warning、error以及critical。通過賦予logger或者handler不同的級別,開發者就可以只輸出錯誤資訊到特定的記錄檔案,或者在除錯時只記錄除錯資訊。

logging.basicconfig函式各引數:

filename:指定日誌檔名;

filemode:和file函式意義相同,指定日誌檔案的開啟模式,'w'或者'a';

format:指定輸出的格式和內容,format可以輸出很多有用的資訊,

引數:作用

%(levelno)s:列印日誌級別的數值

%(levelname)s:列印日誌級別的名稱

%(pathname)s:列印當前執行程式的路徑,其實就是sys.ar**[0]

%(filename)s:列印當前執行程式名

%(funcname)s:列印日誌的當前函式

%(lineno)d:列印日誌的當前行號

%(asctime)s:列印日誌的時間

%(thread)d:列印執行緒id

%(threadname)s:列印執行緒名稱

%(process)d:列印程序id

%(message)s:列印日誌資訊

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

level:設定日誌級別,預設為logging.warnning;

stream:指定將日誌的輸出流,可以指定輸出到sys.stderr,sys.stdout或者檔案,預設輸出到sys.stderr,當stream和filename同時指定時,stream被忽略;

2.2 將日誌寫入到檔案

2.2.1 將日誌寫入到檔案

設定logging,建立乙個filehandler,並對輸出訊息的格式進行設定,將其新增到logger,然後將日誌寫入到指定的檔案中

1 importlogging2 logger = logging.getlogger(__name__)3 logger.setlevel(level =logging.info)4 handler = logging.filehandler("log.txt")5 handler.setlevel(logging.info)6 formatter = logging.formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')7 handler.setformatter(formatter)8 logger.addhandler(handler)9

10 logger.info("start print log")11 logger.debug("do something")12 logger.warning("something maybe fail.")13 logger.info("finish")

下面是封裝的乙個 日誌列印助手:

1 importlogging.handlers2

3 """

4 %(levelno)s: 列印日誌級別的數值5 %(levelname)s: 列印日誌級別名稱6 %(pathname)s: 列印當前執行程式的路徑,其實就是sys.ar**[0]7 %(filename)s: 列印當前執行程式名8 %(funcname)s: 列印日誌的當前函式9 %(lineno)d: 列印日誌的當前行號10 %(asctime)s: 列印日誌的時間11 %(thread)d: 列印執行緒id12 %(threadname)s: 列印執行緒名稱13 %(process)d: 列印程序id14 %(message)s: 列印日誌資訊15 """

17 classlogassistant:18 logger =none19 #日誌一共分成5個等級,從低到高分別是:debug info warning error critical。這5個等級,也分別對應5種打日誌的方法: debug 、info 、warning 、error 、critical。預設的是warning,

21 levels = 26

27 log_level = "d"

28 log_file = "log.txt"

29 log_max_byte = 10 * 1024 * 1024;30 log_backup_count = 5

32 @staticmethod33 defgetlogger():34 if logassistant.logger is notnone:35 returnlogassistant.logger36

37 logassistant.logger = logging.logger("logassistant")38 log_handler = logging.handlers.rotatingfilehandler(filename=logassistant.log_file, \39 maxbytes=logassistant.log_max_byte, \40 backupcount=logassistant.log_backup_count)41 log_fmt = logging.formatter("[%(asctime)s][%(levelname)s][func:%(funcname)s][thread:%(thread)d]: %(message)s")42 log_handler.setformatter(log_fmt)43 logassistant.logger.addhandler(log_handler)44 logassistant.logger.setlevel(logassistant.levels.get(logassistant.log_level))45 returnlogassistant.logger46

47 defoutput_test():48 logger =logassistant.getlogger()49 logger.debug("this is a debug msg!")50

51 if __name__ == "__main__":52 output_test()

支票列印模板 支票印表機

普霖系列 支票內容一次性完成,可列印進賬單 支票背書 電匯憑證 等多種票據,多種字型大小可供選擇,可單擊 聯機兩種工作模式 支票日期 大小寫金額 人民幣 符號 收款人名稱 用途 密碼 存根等支票資訊可一次列印完成 也可單獨列印其中一項或多項 單機使用分次列印支票日期金額和密碼 可以列印16位密碼 可...

web列印模板神器reportbro

n年前常用的模板繪製工具有crystal report,ireport designer,原理是在客戶端上繪製模板,生成乙個模板檔案,基本是xml結構,然後再把資料填充進去,按照預先設定好的格式展現成pdf或者excel等。放幾張截圖,用過的人應該回憶滿滿,至少我的印象頗深 說到這裡,用過這兩款工具...

關於水印模組image handler 2 0備忘

今天在zen cart 1.38a和zen cart 1.39d上分別安裝測試了水印模組image handler 2.0,結果發現雖然都是可以用的,不過設定方面需要注意一下。如果你想用那個onmouseover showtrail 來彈出顯示大的功能,後台設定裡的ih small image ho...