Files
oceanbase/unittest/sql/optimizer/cost_model_utils/mylog/mylog.py
wangzelin.wzl 93a1074b0c patch 4.0
2022-10-24 17:57:12 +08:00

44 lines
1.3 KiB
Python

import logging
import sys
class Singleton(object):
def __new__(cls, *args, **kw):
if not hasattr(cls, '_instance'):
orig = super(Singleton, cls)
cls._instance = orig.__new__(cls, *args, **kw)
return cls._instance
class MyLogger(Singleton):
log = logging.getLogger(__name__)
##set to stdout
fmt = '%(asctime)s - %(levelname)s - %(filename)s:%(lineno)s - %(name)s - %(message)s'
formatter = logging.Formatter(fmt)
out_hdlr = logging.StreamHandler(sys.stdout)
#handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5)
out_hdlr.setFormatter(formatter)
out_hdlr.setLevel(logging.INFO)
log.addHandler(out_hdlr)
log.setLevel(logging.INFO)
@staticmethod
def get_logger():
return MyLogger.log
@staticmethod
def info(str, *args, **kargs):
MyLogger.log.info(str, *args, **kargs)
@staticmethod
def warn(str, *args, **kargs):
MyLogger.log.warn(str, *args, **kargs)
@staticmethod
def error(str, *args, **kargs):
MyLogger.log.error(str, *args, **kargs)
if __name__ == '__main__':
MyLogger.get_logger().info("test")
MyLogger.get_logger().warn("test warn %s", 'test')
MyLogger.error("test error")