python 中根据python版本(2或3)定义函数
示意代码如下:
#_*_coding:UTF-8_*_ import time import socket import os import sys if sys.version_info.major == 2: reload(sys) sys.setdefaultencoding('utf8') class LogLevel(object): debug = 'DEBUG' info = 'INFO' warning = 'WARN' error = 'ERROR' fatal = 'FATAL' class Log4P(object): def __init__(self, *args_arr, **args_dict): self.module_name = "unknown" self.task_id = "unknown" if "module_name" in args_dict: self.module_name = args_dict["module_name"] if "task_id" in args_dict: self.task_id = str(args_dict["task_id"]) self.host_name = socket.gethostname() def debug(self, *message): return self.log(*message, level=LogLevel.debug) def info(self, *message): return self.log(*message, level=LogLevel.info) def warn(self, *message): return self.log(*message, level=LogLevel.warning) def error(self, *message): return self.log(*message, level=LogLevel.error) def fatal(self, *message): return self.log(*message, level=LogLevel.fatal) def static(self, case): if case == 1: info = "run success" elif case == 2: info = "run failed" elif case == 3: info = "no master" elif case == 4: info = "error master" elif case == 5: info = "run fail before switch master" else: info = "unknown error" return self.info(info) if sys.version_info.major == 2: def log(self, message, level=LogLevel.info): curr_time = time.localtime(time.time()) log_context = format('[%d-%02d-%02d %02d:%02d:%02d][%s][%s][%s-%s]' \ % (curr_time.tm_year, curr_time.tm_mon, curr_time.tm_mday, curr_time.tm_hour, curr_time.tm_min, curr_time.tm_sec, str(level), self.host_name, self.module_name, self.task_id)) print(log_context, message, os.linesep) else: def log(self, *message, level=LogLevel.info): curr_time = time.localtime(time.time()) log_context = format('[%d-%02d-%02d %02d:%02d:%02d][%s][%s][%s-%s]' \ % (curr_time.tm_year, curr_time.tm_mon, curr_time.tm_mday, curr_time.tm_hour, curr_time.tm_min, curr_time.tm_sec, str(level), self.host_name, self.module_name, self.task_id)) print(log_context, *message, os.linesep) if __name__ == "__main__": logger = Log4P(module_name="dga", task_id="dga_id") logger.log("hello world") logger.log("hello world", "this is a test") a = 100 logger.log("hello world", "var:", a)