zoukankan      html  css  js  c++  java
  • 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)
    

      

  • 相关阅读:
    mysql 远程登录修改配置
    scrapy--分布式爬虫
    win10---cmd终端下连接ubantu--SSH SERVER服务
    将python环境打包成.txt文件
    ubantu安装python3虚拟环境
    selenium 自动化安装火狐谷歌插件
    mysql主从复制-读写分离-原理
    mysql主从复制原理
    mysql储存引擎
    mysql检查-优化-分析
  • 原文地址:https://www.cnblogs.com/bonelee/p/11627524.html
Copyright © 2011-2022 走看看