python 日誌模塊

    以前項目中用的是工具組作的日誌模塊,用的久了,腦殼裏就懶得思考這是如何實現的。畢竟菊廠的開發,忙成狗,不是我所負責的天然只是看看會用就好了。最近開始奮發圖強,天然要好好看下基礎的東西。java

   之前作java開發時候知道java有個log4j的日誌模塊,用着還不錯。我在python中找到它有本身的日誌模塊logging,另外搜索log4python,發現簡書上有人對這個評價通常,有貼出來代碼和配置,因此主要仍是先看python自帶的。python

import logging.handlers LOG_FORMAT = "%(asctime)s - [%(levelname)s] - %(message)s"
# logging.basicConfig(filename="test.log", level=logging.DEBUG, format=LOG_FORMAT)
my_logger = logging.getLogger("my_loger") my_logger.setLevel(logging.DEBUG) console_handler = logging.StreamHandler() log_format = logging.Formatter(LOG_FORMAT) console_handler.setFormatter(log_format) file_handler = logging.FileHandler("my_test.log",encoding="utf-8") my_logger.addHandler(console_handler) my_logger.addHandler(file_handler) if __name__ == "__main__": my_logger.debug("this is debug log") my_logger.info("this is info log")

    經過自帶的logging模塊來看,日誌能夠經過不一樣的handler同時打印到控制檯和文件,並且各自用各自本身的日誌格式,因此,是能夠知足平常開發使用的。工具

    在使用時候,能夠經過logging.basicConfig來全局配置,後續用logging.debug()這種語句來打印日誌;也能夠用logging.getLogger實例化一個日誌對象,添加不一樣的handler,後面再用logging實例化出來的對應打印。this

    在控制檯打印上,能夠用StreamHandler類,默認打印到std.err; 打印到文件中,能夠用FileHandler,或者更實用的RotatingFileHandler,按照官方文檔所說,RotatingFileHandler在日誌文件達到了指定大小以後能夠分割文件。spa

相關文章
相關標籤/搜索