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

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

python 實現多進程日志輪轉ConcurrentLogHandler

瀏覽:92日期: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久久,三上悠亚国产精品一区二区三区
午夜精品久久久久久久久久蜜桃| 日本一区二区免费高清| av资源新版天堂在线| 国产免费av国片精品草莓男男| 一区二区三区四区日本视频| 精品三级av| 91精品国产经典在线观看| 综合激情网...| 99热免费精品| 热久久国产精品| 亚洲天堂日韩在线| 国产一区福利| 天堂а√在线最新版中文在线| 日本久久精品| 日韩高清成人| 亚洲成人精品| 欧美福利一区| 在线午夜精品| 视频在线观看一区二区三区| 在线日韩成人| 日本午夜精品一区二区三区电影| 免费日韩精品中文字幕视频在线| 伊人久久成人| 亚洲狼人精品一区二区三区| 婷婷综合一区| 国产精品免费大片| 日韩av免费大片| 久久精品高清| 人人爽香蕉精品| 国产伦理一区| 精品国内亚洲2022精品成人| 福利视频一区| 国产综合亚洲精品一区二| 欧美一区二区三区久久精品| 麻豆成人综合网| 亚洲精品国产嫩草在线观看| 久久激情中文| 久久电影一区| 欧美一级久久| 麻豆mv在线观看| 日韩精品欧美| 爽好多水快深点欧美视频| 97成人超碰| 91亚洲国产| 免费观看不卡av| 亚洲精品中文字幕99999| 国产精品日韩精品中文字幕| 精品国产第一福利网站| 欧美日韩精品一本二本三本 | 中文不卡在线| 欧美视频精品全部免费观看| 91亚洲国产| 男女性色大片免费观看一区二区| 欧美日韩一区二区三区四区在线观看 | 日韩中文字幕av电影| 7777精品| 久久精品播放| 久久精品超碰| 秋霞国产精品| 日本中文字幕不卡| av在线资源| 日韩国产网站| 青青草国产精品亚洲专区无| 国产精品美女在线观看直播| 日韩精品水蜜桃| 91成人精品在线| 一区二区小说| 久久精品超碰| 亚洲夜间福利| 国产精品白浆| 在线亚洲成人| 91欧美国产| 亚洲香蕉久久| zzzwww在线看片免费| 免费在线观看视频一区| 成人国产综合| 日本亚洲三级在线| 久久久久国产精品一区三寸| 国产免费成人| 精品一区二区三区免费看| 亚洲少妇在线| 91青青国产在线观看精品| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品久久久久久久久妇女| 日韩精品一二三四| 久久美女性网| 美女视频黄免费的久久| 蜜桃av一区二区在线观看| 成人在线丰满少妇av| 亚州av一区| 欧美福利专区| 三上亚洲一区二区| 亚洲精品无吗| 婷婷综合激情| 福利一区二区免费视频 | 性欧美长视频| 免费污视频在线一区| 国产精品一区二区美女视频免费看| 亚洲精品一区二区在线看| 久久精品国产在热久久| 日日摸夜夜添夜夜添国产精品| 免费看久久久| 91精品视频一区二区| 激情欧美丁香| 欧美日韩在线观看首页| 麻豆国产精品777777在线| 日韩中文字幕一区二区三区| av中文资源在线资源免费观看| 国产精品一区2区3区| 欧美日韩四区| 综合日韩av| 久久香蕉精品香蕉| 国产精品一区二区av交换| 欧美日韩亚洲一区| 亚洲日韩视频| 视频精品一区二区| 亚洲视频播放| 黄色欧美日韩| 亚洲一区二区三区免费在线观看| 99久久九九| 婷婷激情一区| av一区在线| 国产一区二区三区四区大秀| 国产精品啊啊啊| 欧美亚洲tv| 日本色综合中文字幕| 婷婷久久免费视频| 97精品久久| 国产欧美在线观看免费| 日本成人在线一区| 日本h片久久| 青青草视频一区| 欧美日韩1区| 国产日韩一区二区三区在线 | 午夜在线一区| 亚洲最新av| 九九在线精品| 99久久视频| 国产精品亚洲一区二区三区在线观看| 国产精品精品| 亚洲三级欧美| 肉色欧美久久久久久久免费看| 国产精品精品| 亚洲v在线看| 免费视频亚洲| 伊人久久亚洲热| 亚洲久久一区| 国产精品视频一区视频二区| 欧美a一区二区| 国产成人免费精品| 97人人精品| 国产成人久久精品一区二区三区| 水蜜桃精品av一区二区| 中文一区一区三区高中清不卡免费| 精品久久免费| 高清av不卡| 天堂网在线观看国产精品| 乱人伦精品视频在线观看| 婷婷亚洲成人| 精品亚洲免a| 精品久久久久中文字幕小说| 国内精品美女在线观看| 99视频精品视频高清免费| 亚洲欧美日韩高清在线| 亚洲午夜国产成人| 国产亚洲欧美日韩精品一区二区三区| 香蕉久久久久久久av网站| 日本a级不卡| 国产va免费精品观看精品视频| 亚洲成人国产| 亚洲精品欧美| 久久99久久人婷婷精品综合| 91亚洲成人| 夜夜精品视频| 国产女人18毛片水真多18精品| 高清一区二区三区| 欧美在线资源| 免费一区二区视频| 久久国产精品色av免费看| 国产suv精品一区二区四区视频 | 九一精品国产| 日本欧美一区二区| 国产aa精品| 午夜久久tv| 国产免费播放一区二区| 亚洲一级影院| 国产精品久久久久久妇女 | 亚洲网站视频| 视频一区中文字幕精品| 国产一区二区亚洲| 国产视频一区在线观看一区免费| 日韩激情视频网站| 精品入口麻豆88视频| 米奇777超碰欧美日韩亚洲| 欧美一级网站| 午夜国产欧美理论在线播放| 国产精品亚洲人成在99www| 国产精品99免费看| 国产欧美日韩一区二区三区在线| 在线观看精品|