<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)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲精品成人a v小说| 国产免费啪嗒啪嗒视频看看| 亚洲精品国产品国语在线| 四虎精品成人免费视频| 免费在线观看视频a| 一级毛片在播放免费| 亚洲精品视频免费观看| h视频免费高清在线观看| 久久久久亚洲精品无码网址 | 在线观看的免费网站| 亚洲成人中文字幕| 久久久久久精品免费免费自慰| 亚洲制服中文字幕第一区| 久久久久久影院久久久久免费精品国产小说 | 亚洲娇小性色xxxx| 18禁无遮挡无码网站免费| 亚洲精品国产综合久久久久紧| 青青草国产免费久久久下载| 国产精品久久久久久亚洲小说| 国产一级淫片免费播放| 成人免费网站视频www| 久久精品国产亚洲沈樵| 亚州免费一级毛片| 亚洲性无码AV中文字幕| 免费在线观看日韩| 99久久成人国产精品免费| 777亚洲精品乱码久久久久久| 免费成人激情视频| 在线观看国产一区亚洲bd| 亚洲免费视频一区二区三区| 免费一区二区无码东京热| 亚洲色图视频在线观看| 永久免费看bbb| 国产猛男猛女超爽免费视频| 久久精品亚洲AV久久久无码| 四虎永久免费影院在线| 久久久久国产精品免费网站| 亚洲色偷精品一区二区三区| 亚洲人成色777777在线观看| av免费不卡国产观看| 免费一级毛片在线播放放视频 |