一个安全可靠高效的进程间日志处理器 A safe, reliable and efficient inter process log processor 新增压缩和压缩等级参数 add gzip fix bugs

multiprocess-logger的Python项目详细描述


多进程日志切换处理器

  • 一个安全可靠高效的进程间日志处理器 A safe, reliable and efficient inter process log processor fix bugs 修复上一版的bug

  • speed about 7100 lines/s 0.8M/s (10 processes) 7100行/s 0.8M/s 测试环境 虚拟机(virtual machine)

  • CentOS7 64

  • python3.7

  • 机械硬盘 hard disk

  • 添加测试用例

  • 新增参数 need_zip 是否需要日志压缩 布尔值 (需要以命名关键字参数传入)

  • 新增参数 compresslevel 日志压缩的gzip等级 默认为9 (需要以命名关键字参数传入)

  • v 0.5 修复上一版(0.4)的bug

  • import logging
    
    from multiprocessing import Process
    from logging import Formatter
    
    from multiprocess_logger import MultiprocessingHandler
    
    handler = MultiprocessingHandler(filename='./ppp.log',
                                     maxBytes=1024 * 1024, backupCount=10, need_zip=True, compresslevel=9)
    fmt = Formatter(fmt='%(asctime)s - %(process)d - %(name)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    handler.setFormatter(fmt=fmt)
    logger = logging.getLogger('SHIT')
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)
    
    logging.basicConfig(level=logging.ERROR,
                        format='%(asctime)s - %(process)d - %(name)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    
    
    def write_log():
        while True:
            logger.info('Hello World!------------Hello World!')
    
    
    if __name__ == '__main__':
        # write_log()
        p_list = []
        for i in range(6):
            p_list.append(Process(target=write_log))
    
        for i in p_list:
            i.start()
    
    
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?