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

      

  • 相关阅读:
    Lua metatable & metamethod
    lua 中的点、冒号与self
    Eclipse 快捷键
    logging的使用
    URL转义字符
    UnicodeEncodeError: ‘ascii’ codec can’t encode
    Baidu URL的部分参数
    使用JS伪造Post请求
    print 不换行
    exception keynote
  • 原文地址:https://www.cnblogs.com/andr01la/p/6953225.html
Copyright © 2011-2022 走看看