python實現(xiàn)自定義日志的具體方法
1、導入logging模塊:
import logging
2、創(chuàng)建日志收集器:
logger = logging.getLogger(“日志收集器的name”)
3、設置日志收集器的日志級別:
logger.setLevel(logging.INFO) #設置收集器的級別為INFO。
4、給日志收集器創(chuàng)建輸出渠道,根據(jù)第一部分的內容知:日志輸出渠道包含控制臺輸出和文件輸出。
5、設置日志輸出的內容格式。
# 設置日志的輸出格式 fmt = '%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s' formatter = logging.Formatter(fmt)
6、將設置的日志格式綁定到創(chuàng)建的輸出渠道中,即將日志格式與輸出渠道關聯(lián)起來。
7、將設置好的輸出渠道,添加到日志收集器。
實例擴展:
import osimport timeimport logging#返回一個logger實例,如果沒有指定name,返回root logger。# 只要name相同,返回的logger實例都是同一個而且只有一個,即name和logger實例是一一對應的。# 這意味著,無需把logger實例在各個模塊中傳遞。只要知道name,就能得到同一個logger實例。logger = logging.getLogger(’mylogger’)# 設置總日志級別, 也可以給不同的handler設置不同的日志級別#設置logger的level, level有以下幾個級別:# 級別高低順序:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL# 如果把looger的級別設置為INFO, 那么小于INFO級別的日志都不輸出, 大于等于INFO級別的日志都輸出 logger.setLevel(logging.DEBUG)# 控制臺日志和日志文件使用同一個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)生的時間;filename:產(chǎn)生日志的腳本文件名;lineno:該腳本文件哪一行代碼產(chǎn)生了日志# threadName: 當前線程名;thread: 當前進程名;Process進程同thread線程# levelname: logger的級別;meesage: 具體的日志信息# 創(chuàng)建Handler, 輸出日志到控制臺和文件# 日志文件FileHandlerbasedir = os.path.abspath('.') #返回腳本所在的絕對路徑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’ # 日志文件名,以當前時間命名file_handler = logging.FileHandler(os.path.join(log_dir, filename)) # 創(chuàng)建日志文件handlerfile_handler.setFormatter(formatter) # 設置Formatterfile_handler.setLevel(logging.INFO) # 單獨設置日志文件的日志級別# 控制臺日志StreamHandlerstream_handler = logging.StreamHandler()stream_handler.setFormatter(formatter)# stream_handler.setLevel(logging.INFO) # 單獨設置控制臺日志的日志級別,注釋掉則使用總日志級別# 將handler添加到logger中l(wèi)ogger.addHandler(file_handler)logger.addHandler(stream_handler)
到此這篇關于python實現(xiàn)自定義日志的具體方法的文章就介紹到這了,更多相關python自定義日志如何實現(xiàn)內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
1. ASP常用日期格式化函數(shù) FormatDate()2. chat.asp聊天程序的編寫方法3. CSS 使用Sprites技術實現(xiàn)圓角效果4. phpstudy apache開啟ssi使用詳解5. 詳解瀏覽器的緩存機制6. ASP中if語句、select 、while循環(huán)的使用方法7. 怎樣才能用js生成xmldom對象,并且在firefox中也實現(xiàn)xml數(shù)據(jù)島?8. HTML中的XML數(shù)據(jù)島記錄編輯與添加9. 利用FastReport傳遞圖片參數(shù)在報表上展示簽名信息的實現(xiàn)方法10. 推薦一個好看Table表格的css樣式代碼詳解
