相关疑难解决方法(0)

python日志记录性能比较和选项

我正在研究Python中的高性能日志记录,到目前为止,我们已经对python标准日志记录模块的性能感到失望 - 但似乎没有其他选择.下面是一段性能测试代码4种不同的日志记录方式:

import logging
import timeit
import time
import datetime
from logutils.queue import QueueListener, QueueHandler
import Queue
import threading

tmpq = Queue.Queue()

def std_manual_threading():
    start = datetime.datetime.now()
    logger = logging.getLogger()
    hdlr = logging.FileHandler('std_manual.out', 'w')
    logger.addHandler(hdlr)
    logger.setLevel(logging.DEBUG)
    def logger_thread(f):
        while True:
            item = tmpq.get(0.1)
            if item == None:
                break
            logging.info(item)
    f = open('manual.out', 'w')
    lt = threading.Thread(target=logger_thread, args=(f,))
    lt.start()
    for i in range(100000):
        tmpq.put("msg:%d" % i)
    tmpq.put(None)
    lt.join()
    print datetime.datetime.now() - start

def nonstd_manual_threading():
    start = datetime.datetime.now()
    def logger_thread(f):
        while …
Run Code Online (Sandbox Code Playgroud)

python performance logging multithreading python-multithreading

11
推荐指数
2
解决办法
5032
查看次数