<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    用python做測試實現高性能測試工具(5)—多進程寫log

    在上一篇中解決了系統的性能問題,但寫log又引入了問題,多進程寫log會引起混亂。
      查詢了多進程寫log 的方案, 主要有2種:
      利用多進程的Queue,把log放到統一的有個log queue里面,一個單獨的線程寫log
      起一個單獨的socket server,由 這個server來接受log,并負責寫log
      我覺得這2重方案都太重了,很多寫log的地方就需要改動了,希望找到一個方案能直接不改動老代碼寫log的方式,開始考慮的是每個進程單獨寫一個log,但這樣統計數據有點小不方便。 繼續探索到,有個開源的項目(https://launchpad.net/python-concurrent-log-handler),已經實現了多進程寫log,但目前只是實現了按文件大小RotatingFileHandler, 按時間rotate 的功能還沒實現。不過這個已經足夠用了。
    try:
    from cloghandler import ConcurrentRotatingFileHandler as RFHandler
    except ImportError:
    from warnings import warn
    warn("ConcurrentLogHandler package not installed.  Using builtin log handler")
    from logging.handlers import RotatingFileHandler as RFHandler
    rotateHandler = RFHandler("sim.log", "a", 10*1024*1024, 5)
    formatter = logging.Formatter('%(asctime)s [%(processName)s %(threadName)s %(levelname)s %(module)s:%(lineno)d] %(message)s')
    rotateHandler.setFormatter(formatter)
    log = logging.getLogger()
    log.addHandler(rotateHandler)
    log.setLevel(20)
    rotateHandler = RFHandler("sim.log", "a", 10*1024*1024, 5)
      log文件名為sim.log,  文件到10M就會rotate, 最多保留5個文件
      formatter = logging.Formatter('%(asctime)s [%(processName)s %(threadName)s %(levelname)s %(module)s:%(lineno)d] %(message)s')   設置log輸出的格式, 包括時間,進程名,線程名,模塊名字,代碼行數
      log.setLevel(20) 設置什么級別的log輸出,   CRITICAL 50; ERROR 40; WARNING 30; INFO 20; DEBUG 10, NOSET 0;
    import logging
    import time
    import multiprocessing
    class Customer(multiprocessing.Process):
    def __init__(self,mp_name):
    multiprocessing.Process.__init__(self,name=mp_name)
    def run(self):
    while 1:
    logging.debug(" I am here")
    time.sleep(1)
    for i in xrange(2):
    mp=Customer("customer"+str(i))
    mp.start()
      最后輸出log的例子是:
    2013-12-05 21:42:10,961 [customer0 MainThread DEBUG testqueue_old:115]  I am here
    2013-12-05 21:42:15,361 [customer1 MainThread DEBUG testqueue_old:115]  I am here
    相關文章
    用python做測試實現高性能測試工具(4)—系統架構

    posted on 2014-01-08 10:43 順其自然EVO 閱讀(2130) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2014年1月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲中文字幕无码久久综合网| 国产精品久久香蕉免费播放| 中文字幕专区在线亚洲| 日韩色视频一区二区三区亚洲| jizzjizz亚洲| 水蜜桃视频在线观看免费| 伊在人亚洲香蕉精品区麻豆| 国产亚洲精品美女2020久久 | 暖暖免费中文在线日本| 国产一级大片免费看| 免费中文字幕视频| 国产亚洲美日韩AV中文字幕无码成人| 成年网在线观看免费观看网址 | 小小影视日本动漫观看免费| 视频一区二区三区免费观看| 亚洲AV永久无码精品一区二区国产 | 永久久久免费浮力影院| 亚洲精品成人无码中文毛片不卡| 久久国产精品免费一区二区三区| 亚洲日本一区二区三区在线| 国产91在线|亚洲| 国产成人免费网站在线观看| 成人精品综合免费视频| 亚洲国产精品久久久久| 国产在线国偷精品产拍免费| 国内成人精品亚洲日本语音 | 日韩精品电影一区亚洲| 日韩免费高清播放器| 亚洲人成激情在线播放| 国产又大又粗又硬又长免费| 久久www免费人成精品香蕉| 亚洲国产高清美女在线观看| 国产免费人成在线视频| 免费黄色电影在线观看| 亚洲色偷偷偷综合网| 亚洲午夜久久久影院| 免费毛片a在线观看67194| 一级特黄录像免费播放中文版| 亚洲综合日韩中文字幕v在线| 色播在线永久免费视频| 七色永久性tv网站免费看|