婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler

python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler

熱門標(biāo)簽:如何在地圖標(biāo)注文字 長(zhǎng)春人工智能電銷機(jī)器人官網(wǎng) n400電話申請(qǐng)多少錢 西藏快速地圖標(biāo)注地點(diǎn) 廈門crm外呼系統(tǒng)如何 地圖標(biāo)注推廣單頁(yè) 女王谷地圖標(biāo)注 百應(yīng)ai電銷機(jī)器人鄭州 ai地圖標(biāo)注

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

日志輪轉(zhuǎn):根據(jù)時(shí)間或者文件大小控制日志的文件個(gè)數(shù),不用我們手動(dòng)管理

python中l(wèi)ogging模塊內(nèi)置的有幾個(gè)支持日志輪轉(zhuǎn)的handler

常用的有TimedRotatingFileHandler根據(jù)時(shí)間輪轉(zhuǎn) RotatingFileHandler根據(jù)文件大小輪轉(zhuǎn)

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

多進(jìn)程的時(shí)候可以使用ConcurrentLogHandler(需要自行安裝)按照文件大小輪轉(zhuǎn)

pip install ConcurrentLogHandler

一、簡(jiǎn)單的日志輪轉(zhuǎn)功能實(shí)現(xiàn):

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import os
import logging
from cloghandler import ConcurrentRotatingFileHandler
from 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, # 保存日志的文件名(備份出的文件會(huì)以此名+.1、 .2命名)
         encoding=None,
         maxBytes=LOG_MAX_BYTES, # 每個(gè)日志文件的最大容量
         backupCount=3 # 最多備份幾個(gè)日志文件):
  # 判斷存放日志的文件夾是否存在 如果不存在新建
  if not os.path.exists(log_path):
    os.mkdir(log_path)
  # 存放log的文件名
  log_filename = os.path.join(log_path, log_filename)
 
  # 創(chuàng)建一個(gè)logger
  logger = logging.getLogger(logger_name)
  # 設(shè)置日志等級(jí)
  logger.setLevel(level)
  # 創(chuàng)建一個(gè)滾動(dòng)日志處理器
  crfh = ConcurrentRotatingFileHandler(log_filename, mode=mode, maxBytes=maxBytes, backupCount=backupCount, delay=delay, debug=debug, encoding=encoding)
  # 定義handler的輸出格式
  # 設(shè)定日志輸出格式
  crfh.setFormatter(formatter)
  # 添加日志處理器
  logger.addHandler(crfh)
  # 返回logger對(duì)象
  return logger
 
# 日志格式
formatter_log = logging.Formatter('%(asctime)s - %(filename)s [line: %(lineno)d] 【%(levelname)s】 ----- %(message)s')
# 生成一個(gè)logger
logger = create_logger(log_path=LOG_PATH, logger_name="mylogger", formatter=formatter_log) 
 

這樣就可以在其他模塊導(dǎo)入logger進(jìn)行使用了

logger.error("error msg") 

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

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

這樣就可以使用writer.info("msg")記錄數(shù)據(jù)了

二、使用ini配置文件

創(chuàng)建文件xxx.ini

[loggers]
keys = root,public
 
[handlers]
keys = consoleHandler,publicFileHandler
 
[formatters]
keys = my_formatter
 
[logger_root]
level = DEBUG
handlers = consoleHandler
 
[logger_public]
handlers = publicFileHandler
qualname = public
propagate = 0
 
[handler_consoleHandler]
class = StreamHandler
level = DEBUG
formatter = my_formatter
args = (sys.stdout,)
 
[handler_publicFileHandler]
class = cloghandler.ConcurrentRotatingFileHandler
level = INFO
formatter = my_formatter
kwargs = {"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)s
datefmt = %Y-%m-%d %H:%M:%S
 

創(chuàng)建mylogger.py

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

補(bǔ)充:python日志輪轉(zhuǎn)RotatingFileHandler動(dòng)態(tài)加載導(dǎo)致不能記錄日志問題

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:\Python27\lib\logging\handlers.py”, line 77, in emit self.doRollover() File “F:\Python27\lib\logging\handlers.py”, line 142, in doRollover os.rename(self.baseFilename, dfn) WindowsError: [Error 32] Logged from file utils.py, line 89

這是由于django開發(fā)模式時(shí)會(huì)同時(shí)啟動(dòng)兩個(gè)進(jìn)程加載settings.py,導(dǎo)致日志文件占用后無(wú)法重命名或者刪除

都知道django開發(fā)模式下如果有文件變動(dòng)會(huì)自動(dòng)重新啟動(dòng),所以同時(shí)又兩個(gè)進(jìn)程,一個(gè)是程序正常運(yùn)行的進(jìn)程,另一個(gè)是用來監(jiān)聽變更并重啟服務(wù)的進(jìn)程,他們都會(huì)加載一遍settings.py,可以在settings.py中加print然后啟動(dòng)會(huì)看到控制臺(tái)又兩次輸出。

解決方式:

python C:\Users\pc\Desktop\yunserver-1.1\manage.py runserver --noreload 0.0.0.0:8000

使用不動(dòng)態(tài)加載方式運(yùn)行(這樣可能會(huì)影響開發(fā)環(huán)境中動(dòng)態(tài)加載)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python多進(jìn)程的使用詳情
  • Python多線程與多進(jìn)程相關(guān)知識(shí)總結(jié)
  • python實(shí)現(xiàn)多進(jìn)程并發(fā)控制Semaphore與互斥鎖LOCK
  • python 多進(jìn)程和多線程使用詳解
  • Python 多進(jìn)程原理及實(shí)現(xiàn)
  • python多進(jìn)程基礎(chǔ)詳解

標(biāo)簽:渭南 廊坊 亳州 內(nèi)江 拉薩 綿陽(yáng) 黔東 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler》,本文關(guān)鍵詞  python,實(shí)現(xiàn),多,進(jìn)程,日志,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美va日韩va| 欧美日韩在线三级| 精品少妇一区二区三区在线视频| 免费不卡在线视频| 欧美成人艳星乳罩| 成人a免费在线看| 一区在线中文字幕| 欧美无砖专区一中文字| 日韩影视精彩在线| 精品国产免费视频| 国产99久久精品| 亚洲日本在线天堂| 91精品国产欧美一区二区 | 欧美精品乱人伦久久久久久| 久99久精品视频免费观看| 亚洲欧洲av在线| 欧美一卡2卡3卡4卡| 不卡高清视频专区| 蜜桃久久久久久| 亚洲日本青草视频在线怡红院| 色偷偷成人一区二区三区91| 午夜不卡av在线| 欧美国产成人精品| 欧美日韩在线观看一区二区 | 美国欧美日韩国产在线播放| 国产精品久久久久久久久久免费看| 欧美三级中文字幕在线观看| 国产乱码精品一区二区三区忘忧草| 亚洲精品久久久久久国产精华液| 欧美老肥妇做.爰bbww| bt欧美亚洲午夜电影天堂| 久久91精品久久久久久秒播| 一区二区成人在线视频| 国产午夜亚洲精品羞羞网站| 欧美午夜在线观看| 91视频www| 国产老肥熟一区二区三区| 亚洲三级视频在线观看| 26uuuu精品一区二区| 6080yy午夜一二三区久久| 色综合久久九月婷婷色综合| 高清日韩电视剧大全免费| 精品一区二区三区免费毛片爱| 亚洲午夜久久久久中文字幕久| 国产精品午夜在线观看| 精品国产一区二区三区不卡| 在线观看日韩高清av| 成人app下载| 国产ts人妖一区二区| 免费在线观看成人| 国产精品理伦片| 欧美xxxxxxxxx| 欧美色网站导航| 成人午夜私人影院| 国产xxx精品视频大全| 久久精品国产免费看久久精品| 婷婷激情综合网| 亚洲国产日韩精品| 亚洲人成网站影音先锋播放| 久久久综合精品| 这里只有精品免费| 日本道精品一区二区三区| 欧美日韩精品欧美日韩精品一综合| 色欧美88888久久久久久影院| 青青国产91久久久久久| 欧美国产视频在线| 26uuu国产电影一区二区| 欧美一区二区三区思思人 | 国产传媒日韩欧美成人| 国产一区二区三区综合| 天堂成人国产精品一区| 1000部国产精品成人观看| 中文字幕日韩一区二区| 欧美激情在线一区二区| 国产精品久久综合| 中文字幕免费不卡在线| 欧美日韩久久久久久| 不卡的av中国片| 色偷偷成人一区二区三区91| 欧洲中文字幕精品| 69堂国产成人免费视频| 欧美日本一道本| 欧美一级黄色大片| 精品久久久三级丝袜| 精品国产乱码久久久久久蜜臀 | 欧美日韩高清在线| 欧美精品一卡两卡| 6080亚洲精品一区二区| 2017欧美狠狠色| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久久久户外露出 | 久久天天做天天爱综合色| 亚洲国产精品av| 久久婷婷国产综合精品青草 | 欧美影院午夜播放| 91精品国产乱码久久蜜臀| 日韩精品一区二区三区四区视频| 精品粉嫩超白一线天av| 国产午夜久久久久| 国产精品乱码人人做人人爱 | 国产亚洲制服色| 日韩毛片高清在线播放| 午夜精品一区二区三区免费视频| 韩国精品在线观看| 99久久99久久综合| 欧美二区乱c少妇| 亚洲国产精品成人综合| 丝袜亚洲精品中文字幕一区| 国产一区在线精品| www.色精品| 宅男在线国产精品| 国产精品日韩成人| 一区二区三区精品在线| 国内精品写真在线观看| 91在线视频播放地址| 欧美片在线播放| 国产日韩精品一区二区三区| 天堂蜜桃91精品| 成人午夜电影小说| 欧美一区二区三区四区在线观看| 国产精品久久久久久久浪潮网站 | 免费欧美在线视频| 99精品视频在线观看| 欧美一区国产二区| 自拍偷拍国产亚洲| 久久成人免费电影| 欧美性色黄大片| 欧美国产欧美综合| 美国十次了思思久久精品导航| 91免费国产在线观看| 久久久精品蜜桃| 蜜桃视频在线观看一区二区| 天天操天天干天天综合网| 日韩中文字幕区一区有砖一区 | 91亚洲精品久久久蜜桃网站| 欧美一级片免费看| 一二三区精品视频| 成人午夜视频在线| 精品久久久久久久久久久院品网| 亚洲在线观看免费| 97se亚洲国产综合自在线| 国产午夜精品久久久久久久| 秋霞av亚洲一区二区三| 欧美日韩亚洲综合一区| 亚洲视频香蕉人妖| 成人免费看黄yyy456| 久久人人爽爽爽人久久久| 日韩不卡一区二区三区 | 亚洲二区在线视频| 色综合中文综合网| 91麻豆精品国产91久久久久久久久 | 一区二区三区中文字幕电影| 高清在线不卡av| 日韩免费看网站| 日本不卡一区二区三区高清视频| 色综合久久88色综合天天6 | 精品国产亚洲在线| 奇米色一区二区三区四区| 欧美日韩精品福利| 亚洲成人av在线电影| 在线观看视频一区二区欧美日韩| 亚洲视频免费在线| 成人av午夜影院| 国产精品免费久久| 不卡av免费在线观看| 国产性做久久久久久| 风流少妇一区二区| 中文字幕国产一区| 成人黄色一级视频| 国产精品二区一区二区aⅴ污介绍| 国产成人欧美日韩在线电影| 国产精品青草综合久久久久99| 成人免费看视频| 中文字幕一区二区三中文字幕| av福利精品导航| 亚洲精选免费视频| 欧美午夜电影一区| 午夜视频一区在线观看| 欧美精品一卡两卡| 久久99精品久久久| 久久免费美女视频| 欧美一区二区三区视频| 精品99久久久久久| 青青国产91久久久久久| 精品1区2区3区| 亚洲成人先锋电影| 4438成人网| 日韩电影在线看| 7777女厕盗摄久久久| 日韩电影在线免费观看| 精品乱人伦小说| 国产精品12区| 日本一区二区在线不卡| 99久久伊人网影院| 亚洲精品国产精华液| 欧美一区二区在线免费观看| 国产在线麻豆精品观看| 久久久久久久久蜜桃| 91丨porny丨最新| 久久99蜜桃精品|