python實(shí)現(xiàn)自定義日志的具體方法
1、導(dǎo)入logging模塊:
import logging
2、創(chuàng)建日志收集器:
logger = logging.getLogger(“日志收集器的name”)
3、設(shè)置日志收集器的日志級(jí)別:
logger.setLevel(logging.INFO) #設(shè)置收集器的級(jí)別為INFO。
4、給日志收集器創(chuàng)建輸出渠道,根據(jù)第一部分的內(nèi)容知:日志輸出渠道包含控制臺(tái)輸出和文件輸出。
5、設(shè)置日志輸出的內(nèi)容格式。
# 設(shè)置日志的輸出格式 fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s" formatter = logging.Formatter(fmt)
6、將設(shè)置的日志格式綁定到創(chuàng)建的輸出渠道中,即將日志格式與輸出渠道關(guān)聯(lián)起來(lái)。
7、將設(shè)置好的輸出渠道,添加到日志收集器。
實(shí)例擴(kuò)展:
import os import time import logging #返回一個(gè)logger實(shí)例,如果沒(méi)有指定name,返回root logger。 # 只要name相同,返回的logger實(shí)例都是同一個(gè)而且只有一個(gè),即name和logger實(shí)例是一一對(duì)應(yīng)的。 # 這意味著,無(wú)需把logger實(shí)例在各個(gè)模塊中傳遞。只要知道name,就能得到同一個(gè)logger實(shí)例。 logger = logging.getLogger('mylogger') # 設(shè)置總?cè)罩炯?jí)別, 也可以給不同的handler設(shè)置不同的日志級(jí)別 #設(shè)置logger的level, level有以下幾個(gè)級(jí)別: # 級(jí)別高低順序:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL # 如果把looger的級(jí)別設(shè)置為INFO, 那么小于INFO級(jí)別的日志都不輸出, 大于等于INFO級(jí)別的日志都輸出 logger.setLevel(logging.DEBUG) # 控制臺(tái)日志和日志文件使用同一個(gè)formatter,formatter用于描述日志的格式 formatter = logging.Formatter( '%(asctime)s - %(filename)s[line:%(lineno)d] - <%(threadName)s %(thread)d>' + '- <Process %(process)d> - %(levelname)s: %(message)s' ) # asctime:日志產(chǎn)生的時(shí)間;filename:產(chǎn)生日志的腳本文件名;lineno:該腳本文件哪一行代碼產(chǎn)生了日志 # threadName: 當(dāng)前線程名;thread: 當(dāng)前進(jìn)程名;Process進(jìn)程同thread線程 # levelname: logger的級(jí)別;meesage: 具體的日志信息 # 創(chuàng)建Handler, 輸出日志到控制臺(tái)和文件 # 日志文件FileHandler basedir = os.path.abspath(".") #返回腳本所在的絕對(duì)路徑 log_dir = os.path.join(basedir, 'logs') # 日志文件所在目錄,即‘腳本路徑/logs' if not os.path.isdir(log_dir): os.mkdir(log_dir) filename = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) + '.log' # 日志文件名,以當(dāng)前時(shí)間命名 file_handler = logging.FileHandler(os.path.join(log_dir, filename)) # 創(chuàng)建日志文件handler file_handler.setFormatter(formatter) # 設(shè)置Formatter file_handler.setLevel(logging.INFO) # 單獨(dú)設(shè)置日志文件的日志級(jí)別 # 控制臺(tái)日志StreamHandler stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) # stream_handler.setLevel(logging.INFO) # 單獨(dú)設(shè)置控制臺(tái)日志的日志級(jí)別,注釋掉則使用總?cè)罩炯?jí)別 # 將handler添加到logger中 logger.addHandler(file_handler) logger.addHandler(stream_handler)
到此這篇關(guān)于python實(shí)現(xiàn)自定義日志的具體方法的文章就介紹到這了,更多相關(guān)python自定義日志如何實(shí)現(xiàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python 第三方日志框架loguru使用
- python和websocket構(gòu)建實(shí)時(shí)日志跟蹤器的步驟
- 解決python logging遇到的坑 日志重復(fù)打印問(wèn)題
- python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler
- python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名
- python (logging) 日志按日期、大小回滾的操作
- 詳解python日志輸出使用配置文件格式
- python基于pexpect庫(kù)自動(dòng)獲取日志信息
- Python日志打印里logging.getLogger源碼分析詳解
- python subprocess pipe 實(shí)時(shí)輸出日志的操作
- Python中l(wèi)ogging日志的四個(gè)等級(jí)和使用
- 如何在Python項(xiàng)目中引入日志
相關(guān)文章
對(duì)python中return和print的一些理解
最近看到視頻中講到python中的print和return的區(qū)別,感到一些迷惑,所以自己上手實(shí)踐了一把,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中return和print的一些理解,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08Python控制鍵盤(pán)鼠標(biāo)pynput的詳細(xì)用法
這篇文章主要介紹了Python控制鍵盤(pán)鼠標(biāo)pynput的詳細(xì)用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python?time模塊之時(shí)間戳與結(jié)構(gòu)化時(shí)間的使用
這篇文章主要為大家詳細(xì)介紹了Python中的time模塊以及如何利用time模塊實(shí)現(xiàn)時(shí)間戳與結(jié)構(gòu)化時(shí)間,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-06-06Python使用SQLAlchemy操作Mysql數(shù)據(jù)庫(kù)的操作示例
SQLAlchemy是Python的SQL工具包和對(duì)象關(guān)系映射(ORM)庫(kù),它提供了全套的企業(yè)級(jí)持久性模型,用于高效、靈活且優(yōu)雅地與關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行交互,這篇文章主要介紹了Python使用SQLAlchemy操作Mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下2024-08-08Python安裝和配置uWSGI的詳細(xì)過(guò)程
這篇文章主要介紹了Python uWSGI 安裝配置,本文主要介紹如何部署簡(jiǎn)單的 WSGI 應(yīng)用和常見(jiàn)的 Web 框架,以 Ubuntu/Debian 為例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07python pycharm最新版本激活碼(永久有效)附python安裝教程
PyCharm是一個(gè)多功能的集成開(kāi)發(fā)環(huán)境,只需要在pycharm中創(chuàng)建python file就運(yùn)行python,并且pycharm內(nèi)置完備的功能,這篇文章給大家介紹python pycharm激活碼最新版,需要的朋友跟隨小編一起看看吧2020-01-01