python logging模块的多文件应用

原创 2015年11月20日 10:09:39

概述

有的时候需要在一个python程序中生成多个log文件。
本文对logging进一步封装,展示如何在一个程序中使用logging模块打印两个log文件来记录不同类型的信息。
注意logging模块是线程安全的,可以在多线程环境中使用。

完整的代码

#!/usr/bin/env python2.7
# -*- coding:utf-8 -*-
import logging, logging.handlers
class LogMgr:
    def __init__ (self, logpath, markpath):
        self.LOG = logging.getLogger('log')
        loghdlr1 = logging.handlers.RotatingFileHandler(logpath,"a", 0, 1)
        fmt1 = logging.Formatter("%(asctime)s %(threadName)-10s %(message)s", "%Y-%m-%d %H:%M:%S")
        loghdlr1.setFormatter(fmt1)
        self.LOG.addHandler(loghdlr1)
        self.LOG.setLevel(logging.INFO)

        self.MARK = logging.getLogger('mark')
        loghdlr2 = logging.handlers.RotatingFileHandler(markpath,"a", 0, 1)
        fmt2 = logging.Formatter("%(message)s")
        loghdlr2.setFormatter(fmt2)
        self.MARK.addHandler(loghdlr2)
        self.MARK.setLevel(logging.INFO)
    def error(self, msg):
        if self.LOG is not None:
            self.LOG.error(msg)
    def info(self, msg):
        if self.LOG is not None:
            self.LOG.info(msg)
    def debug(self, msg):
        if self.LOG is not None:
            self.LOG.debug(msg)
    def mark(self, msg):
        if self.MARK is not None:
            self.MARK.info(msg)
def main():
    global log_mgr
    log_mgr = LogMgr("mylog","mymark")  
    log_mgr.error('[mylog]This is error log')    
    log_mgr.info('[mylog]This is info log')    
    log_mgr.debug('[mylog]This is debug log')    
    log_mgr.mark('[mymark]This is mark log') 

if __name__ == "__main__":
    main()

执行结果


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

python logging 重复写日志问题

python logging 重复写日志问题用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次。。。很头疼,这样记日志可不行。...

Python logging模块详解

简单将日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.warn...

Python日志输出——logging模块

1. logging介绍         Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,H...

Python模块之Logging(五)——在配置文件中为Logger配置多个handler

使用样例读取配置文件:logging.config.fileConfig("log.conf") # 采用配置文件 创建logger:logger = logging.getLogger("...

python中的logger模块讲解

logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的Python应用。同样这个模块提供不同的日志级别,并可以...

模式识别 - 多视角学习 (Multi-View Learning) 简介

版权所有, 如需引用和转载, 请站内联系.   多视角学习 (Multi-View Learning) 简介   Views from (1) multiple sources (2) differe...

Gram矩阵与卷积网络中的卷积的直观理解

Gram矩阵其实是一种度量矩阵。

Python:日志模块logging的应用

通常,在商用软件中均会有完整的日志机制,之前使用C语言实现过一个《简单的分级别写日志程序》,具有以下功能和不足: /***************************************...
  • dyx1024
  • dyx1024
  • 2012年02月11日 14:57
  • 8770

Python logging模块使用配置文件记录日志

良好的日志是应用程序调试、质量跟踪的重要线索,因此在应用开发过程中应当养成良好的日志记录习惯。在Python中内建了logging模块,可以使用该模块生成高质量的应用程序日志。基本用法默认情况下,lo...
  • langkew
  • langkew
  • 2016年06月01日 09:35
  • 3201

使用python logging处理多机多进程写同一个日志文件

MemoryHandler的性能问题: 如果target是StreamHandler的子类 上是有严重的IO性能问题 是一个for调用handler, handler中的处理侧是 io.w...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python logging模块的多文件应用
举报原因:
原因补充:

(最多只允许输入30个字)