zoukankan      html  css  js  c++  java
  • python-设置log

    #-*- coding: UTF-8 -*-
    __author__ = '007'
    __date__ = '2016/6/16'
    
    import logging
    import ctypes
    
    #STD_INPUT_HANDLE = -10
    STD_OUTPUT_HANDLE= -11
    #STD_ERROR_HANDLE = -12
    
    FOREGROUND_WHITE = 0x0007
    FOREGROUND_BLUE = 0x01 # text color contains blue.
    FOREGROUND_GREEN= 0x02 # text color contains green.
    FOREGROUND_RED  = 0x04 # text color contains red.
    FOREGROUND_INTENSITY = 0x08 # text color is intensified.
    FOREGROUND_YELLOW = FOREGROUND_RED | FOREGROUND_GREEN
    
    BACKGROUND_BLUE = 0x10 # background color contains blue.
    BACKGROUND_GREEN= 0x20 # background color contains green.
    BACKGROUND_RED  = 0x40 # background color contains red.
    BACKGROUND_INTENSITY = 0x80 # background color is intensified.
    
    std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
    def set_color(color,handle = std_out_handle):
        bb = ctypes.windll.kernel32.SetConsoleTextAttribute(handle,color)
        return bb
    
    class logger:
        def __init__(self,name,path,clevel=logging.DEBUG,flevel=logging.DEBUG):
            self.logger = logging.getLogger(name)
            self.logger.setLevel(logging.DEBUG)
    
            fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    
            ch = logging.StreamHandler()
            ch.setFormatter(fmt)
            ch.setLevel(clevel)
    
            fh = logging.FileHandler(path)
            fh.setFormatter(fmt)
            fh.setLevel(flevel)
    
            self.logger.addHandler(ch)
            self.logger.addHandler(fh)
    
        def debug(self,message):
            self.logger.debug(message)
    
        def info(self,message,color=FOREGROUND_GREEN):
            set_color(color)
            self.logger.info(message)
            set_color(FOREGROUND_WHITE)
    
        def warn(self,message,color=FOREGROUND_YELLOW):
            set_color(color)
            self.logger.warn(message)
            set_color(FOREGROUND_WHITE)
    
        def error(self,message,color=FOREGROUND_RED):
            set_color(color)
            self.logger.error(message)
            set_color(FOREGROUND_WHITE)
    
        def critical(self,message,color=FOREGROUND_BLUE):
            set_color(color)
            self.logger.critical(message)
            set_color(FOREGROUND_WHITE)
    
    if __name__ == "__main__":
        logger1 = logger('one','test.log',logging.DEBUG,logging.DEBUG)
        logger1.debug("logger1 debug message")
        logger1.info("logger1 info message")
        logger1.warn("logger1 warn message")
        logger1.error("logger1 error message")
        logger1.critical("logger1 critical message")
    
        logger2 = logger('two','test.log',logging.INFO,logging.INFO)
        logger2.debug("logger2 debug message")
        logger2.info("logger2 info message")
        logger2.warn("logger2 warn message")
        logger2.error("logger2 error message")
        logger2.critical("logger2 critical message")
    
        logger3 = logger('three',"test.log",logging.WARNING)
        logger3.debug("logger3 debug message")
        logger3.info("logger3 info message")
        logger3.warn("logger3 warn message")
        logger3.error("logger3 error message")
        logger3.critical("logger3 critical message")
    
        logger4 = logger('four',"test.log",logging.ERROR,logging.ERROR)
        logger4.debug("logger4 debug message")
        logger4.info("logger4 info message")
        logger4.warn("logger4 warn message")
        logger4.error("logger4 error message")
        logger4.critical("logger4 critical message")
    
        logger5 = logger('five',"test.log",logging.CRITICAL,logging.CRITICAL)
        logger5.debug("logger5 debug message")
        logger5.info("logger5 info message")
        logger5.warn("logger5 warn message")
        logger5.error("logger5 error message")
        logger5.critical("logger5 critical message")
    

      

  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/andr01la/p/6953225.html
Copyright © 2011-2022 走看看