日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 實現多進程日志輪轉ConcurrentLogHandler

瀏覽:89日期:2022-06-24 18:52:45

記錄日志是我們程序中必不可少的一個功能,但是日志文件如果沒有合理的管理,時間長了幾百兆的日志文件就很難分析了(都不想打開看),但是又不可能經常手動去管理它

日志輪轉:根據時間或者文件大小控制日志的文件個數,不用我們手動管理

python中logging模塊內置的有幾個支持日志輪轉的handler

常用的有TimedRotatingFileHandler根據時間輪轉 RotatingFileHandler根據文件大小輪轉

但是內置的這些handler是多線程安全的,而不支持多進程(可以修改源碼加鎖保證進程安全)

多進程的時候可以使用ConcurrentLogHandler(需要自行安裝)按照文件大小輪轉

pip install ConcurrentLogHandler一、簡單的日志輪轉功能實現:

#!/usr/bin/env python# -*- coding: utf-8 -*- import osimport loggingfrom cloghandler import ConcurrentRotatingFileHandlerfrom config import LOG_PATH, LOG_FILENAME, LOG_MAX_BYTES def create_logger(log_path=os.getcwd(), # 存放日志的目錄 level=logging.DEBUG, formatter=logging.BASIC_FORMAT, # 日志輸出格式 logger_name='', # 可以使用logging.getlogger(logger_name)使用此logger mode=’a’, delay=0, debug=True, log_filename=LOG_FILENAME, # 保存日志的文件名(備份出的文件會以此名+.1、 .2命名) encoding=None, maxBytes=LOG_MAX_BYTES, # 每個日志文件的最大容量 backupCount=3 # 最多備份幾個日志文件): # 判斷存放日志的文件夾是否存在 如果不存在新建 if not os.path.exists(log_path): os.mkdir(log_path) # 存放log的文件名 log_filename = os.path.join(log_path, log_filename) # 創建一個logger logger = logging.getLogger(logger_name) # 設置日志等級 logger.setLevel(level) # 創建一個滾動日志處理器 crfh = ConcurrentRotatingFileHandler(log_filename, mode=mode, maxBytes=maxBytes, backupCount=backupCount, delay=delay, debug=debug, encoding=encoding) # 定義handler的輸出格式 # 設定日志輸出格式 crfh.setFormatter(formatter) # 添加日志處理器 logger.addHandler(crfh) # 返回logger對象 return logger # 日志格式formatter_log = logging.Formatter(’%(asctime)s - %(filename)s [line: %(lineno)d] 【%(levelname)s】 ----- %(message)s’)# 生成一個loggerlogger = create_logger(log_path=LOG_PATH, logger_name='mylogger', formatter=formatter_log)

這樣就可以在其他模塊導入logger進行使用了

logger.error('error msg')

有時候我們會記錄一些數據到文件中,如果多個程序同時寫入同一文件會把數據寫亂 我們也可以使用這個模塊來代替f.write()

from config import CHANNEL_PATH, CHANNEL_FILENAME, LOG_MAX_BYTES# 只需要把日志的格式改為只存入信息就可以了formatter_writer = logging.Formatter(’%(message)s’)# 創建一個寫入器(logger)writer = create_logger(logger_name='writer',log_path=CHANNEL_PATH, log_filename=CHANNEL_FILENAME, formatter=formatter_writer, level=logging.INFO)

這樣就可以使用writer.info('msg')記錄數據了

二、使用ini配置文件

創建文件xxx.ini

[loggers]keys = root,public [handlers]keys = consoleHandler,publicFileHandler [formatters]keys = my_formatter [logger_root]level = DEBUGhandlers = consoleHandler [logger_public]handlers = publicFileHandlerqualname = publicpropagate = 0 [handler_consoleHandler]class = StreamHandlerlevel = DEBUGformatter = my_formatterargs = (sys.stdout,) [handler_publicFileHandler]class = cloghandler.ConcurrentRotatingFileHandlerlevel = INFOformatter = my_formatterkwargs = {'filename': './logs/public.log', 'maxBytes': 1024 * 1024 * 10, 'backupCount': 10, 'delay': True, 'debug': True} [formatter_my_formatter]format = %(asctime)s - %(filename)s [line: %(lineno)d] [%(levelname)s] ----- %(message)sdatefmt = %Y-%m-%d %H:%M:%S

創建mylogger.py

import loggingimport logging.config logging.config.fileConfig('./xxx.ini') logger = logging.getLogger('public') logger.info('hello world!')

補充:python日志輪轉RotatingFileHandler動態加載導致不能記錄日志問題

linux下:

Traceback (most recent call last): File “/usr/lib64/python2.7/logging/handlers.py”, line 77, in emit self.doRollover() File “/usr/lib64/python2.7/logging/handlers.py”, line 136, in doRollover os.rename(sfn, dfn) OSError: [Errno 13] Permission denied Logged from file utils.py, line 89

windows下:

Traceback (most recent call last): File “F:Python27liblogginghandlers.py”, line 77, in emit self.doRollover() File “F:Python27liblogginghandlers.py”, line 142, in doRollover os.rename(self.baseFilename, dfn) WindowsError: [Error 32] Logged from file utils.py, line 89

這是由于django開發模式時會同時啟動兩個進程加載settings.py,導致日志文件占用后無法重命名或者刪除

都知道django開發模式下如果有文件變動會自動重新啟動,所以同時又兩個進程,一個是程序正常運行的進程,另一個是用來監聽變更并重啟服務的進程,他們都會加載一遍settings.py,可以在settings.py中加print然后啟動會看到控制臺又兩次輸出。

解決方式:

python C:UserspcDesktopyunserver-1.1manage.py runserver --noreload 0.0.0.0:8000

使用不動態加載方式運行(這樣可能會影響開發環境中動態加載)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99成人在线视频| 日韩成人亚洲| 丝袜美腿亚洲色图| 91九色精品国产一区二区| 日韩精品一卡| 91精品99| 中文字幕亚洲影视| 视频一区中文| 99国产精品一区二区| 亚洲欧美日韩精品一区二区| 免费国产自久久久久三四区久久| 久久久久久久久99精品大| 久久久夜夜夜| 性一交一乱一区二区洋洋av| 视频精品一区二区| 日韩有码av| 久久这里只有| 激情综合自拍| 亚洲精品无播放器在线播放| 国产精品hd| 亚洲涩涩在线| 免费在线观看精品| 亚洲欧洲日韩| 久久久久观看| 亚洲精品小说| 88久久精品| 在线看片福利| 男人的天堂久久精品| 91成人在线网站| 国产一区二区三区不卡视频网站| 99国产精品免费视频观看| 男女男精品视频网| 国产伦一区二区三区| 99久久精品网| 日韩视频中文| 欧美亚洲二区| 最新中文字幕在线播放| 日韩欧美一区免费| 欧美日韩精品一本二本三本| 日韩和欧美一区二区| 麻豆一区二区三| 婷婷精品视频| 欧美精品福利| 久久五月天小说| 欧美日韩亚洲一区在线观看| 日韩欧美一区二区三区在线观看| 一区二区国产在线观看| 精品视频一区二区三区在线观看 | 日韩av有码| aa亚洲婷婷| 亚洲欧美日韩一区在线观看| 国产精品久久| 欧美片第1页| 日韩精品视频中文字幕| 91精品韩国| 国产精品亲子伦av一区二区三区| 久久国产中文字幕| 欧美精品国产一区| 亚洲国产一区二区在线观看| 免费在线欧美视频| 日本一区二区高清不卡| 中文字幕乱码亚洲无线精品一区| 欧美好骚综合网| 日韩区欧美区| 欧美日韩在线二区| 精品免费在线| 日韩av资源网| 日韩视频免费| sm久久捆绑调教精品一区| 少妇精品在线| 一区三区视频| 日本欧美不卡| 麻豆成人91精品二区三区| 影音先锋久久精品| 国内精品麻豆美女在线播放视频| 国产夫妻在线| 亚洲一区二区动漫| 国产 日韩 欧美一区| 日韩精品一级| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩深夜视频| 欧美激情在线精品一区二区三区| 视频一区日韩精品| 性欧美精品高清| 中文亚洲欧美| 在线一区免费| 性欧美xxxx免费岛国不卡电影| 欧美xxxx中国| 国内精品亚洲| 国产成人久久精品麻豆二区| 国产精品一区二区免费福利视频| 一区二区三区国产在线| 国产精品毛片一区二区三区| 国内精品福利| 国产字幕视频一区二区| 99国产精品免费视频观看| 亚洲天堂资源| 秋霞影院一区二区三区| 日韩欧美一区二区三区免费看| 91亚洲国产成人久久精品| 欧美国产专区| 久久精品一区二区国产| 国内一区二区三区| 久久精品国产福利| 国产成人精品亚洲线观看| 精品久久久久久久| 福利一区视频| 婷婷综合六月| 波多野结衣一区| 日韩亚洲精品在线| 蜜桃视频一区二区三区| 视频一区日韩| 久久国产精品美女| 精品视频久久| 日韩欧美自拍| 欧美日韩四区| 在线免费观看亚洲| 日韩三级一区| 麻豆久久一区二区| 日韩av自拍| 精品一区在线| 国产视频一区三区| 日韩三级精品| 精品视频亚洲| 国产综合欧美| 日韩一区二区三区四区五区| 国产精品自在| 黄在线观看免费网站ktv| 亚洲欧美伊人| 亚洲网址在线观看| 国产精品mm| 欧美精品日日操| 妖精视频成人观看www| 亚洲视频电影在线| 国产激情综合| 欧美高清一区| 国产丝袜一区| 久久久国产亚洲精品| 久久xxxx| 加勒比视频一区| 最新亚洲一区| 国产精品永久| 免费精品国产| 国产亚洲精品美女久久| 日韩电影二区| 亚洲精品日本| 欧美成人a交片免费看| 国产精品免费看| 精品一区二区三区视频在线播放| 在线国产一区二区| 久久狠狠久久| 久久三级福利| **爰片久久毛片| 久久久久国产| 国产一级成人av| 欧美日韩一区二区综合 | 欧美日韩高清| 免费看久久久| 日本欧洲一区二区| 久久亚洲国产精品尤物| 1024精品久久久久久久久| 国产精品欧美在线观看| 亚洲高清毛片| 精品久久久网| 日韩激情啪啪| 亚洲一本视频| 国内一区二区三区| 日韩三级视频| 最新国产拍偷乱拍精品| 精品国产成人| 日韩高清一区二区| 亚洲五月婷婷| 日韩成人精品一区二区| 91亚洲精品在看在线观看高清| 久久精品电影| 国产精品3区| 日韩午夜视频在线| 亚洲高清影视| 中文字幕成在线观看| 久久国产尿小便嘘嘘| 久久午夜精品一区二区| 亚洲成人二区| 精品久久久久中文字幕小说| 久久国内精品自在自线400部| 亚洲精品午夜av福利久久蜜桃| 中文在线免费视频| 久久成人高清| 国产欧美日韩一区二区三区四区 | 欧美有码在线| 在线观看视频免费一区二区三区| 日韩精品首页| 午夜av不卡| 久久久久亚洲精品中文字幕| 日本一区二区中文字幕| 一区在线视频观看| 播放一区二区| 日韩国产欧美| 国产传媒av在线| 日韩伦理在线一区| 国内自拍视频一区二区三区|