# -*- coding:utf-8 -*-

"""
注:私有变量和函数,前面加双下划线(不要在后面也加双下划线);
"""

import os
import sys
import time
# 使用inspect模块动态获取当前运行的函数名
import inspect
# 日期头文件;
from datetime import datetime



'''
CBaseLog:日志基类
inspect.stack()[0][3]:获取当前函数的名称;
inspect.stack()[1][3]:获取当前函数的上一层函数的名称;
inspect.stack()[2][3]:获取当前函数的上上一层函数的名称;
'''


class CBaseLog:
    def __init__(self):
        pass

    def __printlog(self, msg):
        # 时间/内容;
        print("%s %s") % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), msg)

    def debug(self, msg):
        # 类型/类名:函数/内容
        log_str = "【DEBUG】<%s::%s> %s" % (self.__class__.__name__, inspect.stack()[1][3], msg)
        self.__printlog(log_str)

    def info(self, msg):
        # 类型/类名:函数/内容
        log_str = "【INFO】<%s::%s> %s" % (self.__class__.__name__, inspect.stack()[1][3], msg)
        self.__printlog(log_str)

    def warn(self, msg):
        # 类型/类名:函数/内容
        log_str = "【WARN】<%s::%s> %s" % (self.__class__.__name__, inspect.stack()[1][3], msg)
        self.__printlog(log_str)

    def error(self, msg):
        # 类型/类名:函数/内容
        log_str = "【ERROR】<%s::%s> %s" % (self.__class__.__name__, inspect.stack()[1][3], msg)
        self.__printlog(log_str)

    def log(self, msg):
        # 类型/类名/内容
        log_str = "【LOG】<%s::%s> %s" % (self.__class__.__name__, inspect.stack()[1][3], msg)
        self.__printlog(log_str)
        
        
if __name__ == "__main__":
    pass