zoukankan      html  css  js  c++  java
  • python 简单的单例模式日志模块

    # -*- coding: utf-8 -*-import logging
    
    def singleton(cls):
        instance = {}
        def _singleton(*args, **kw):
            if cls not in instance:
                instance[cls] = cls(*args, **kw)
            return instance[cls]
        return _singleton
    
    @singleton
    class TkLog(object):
        """docstring for ClassName"""
        def __init__(self):
            FORMAT = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s'
            logging.basicConfig(
                    format=FORMAT,
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='/root/test/myapp.log',
                    filemode='w')
            self.logger = logging.getLogger('icheer')
            
        def debug(self, data):
            self.logger.debug(data)
    
        def info(self, data):
            self.logger.info(data)
    
        def warn(self, data):
            self.logger.warning(data)
    
        def error(self, data):
            self.logger.error(data)
    
        def critical(self, data):
            self.logger.critical(data)
            
        def exception(self, data):
            self.logger.exception(data)
    
        def set_log_level(self, level):
            self.log_level = level
            self.logger.setLevel(self.log_level)
  • 相关阅读:
    1004. Counting Leaves (30)
    51Nod 1272 最大距离 (栈或贪心)
    D
    M
    N
    F
    E
    L
    A. Office Keys ( Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) )
    K
  • 原文地址:https://www.cnblogs.com/ymy124/p/5054380.html
Copyright © 2011-2022 走看看