示意代码如下:

#_*_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)

  

python 中根据python版本(2或3)定义函数的更多相关文章

  1. python python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  2. 如何在Python中快速画图——使用Jupyter notebook的魔法函数(magic function)matplotlib inline

    如何在Python中快速画图--使用Jupyter notebook的魔法函数(magic function)matplotlib inline 先展示一段相关的代码: #we test the ac ...

  3. python中while循环和for循环的定义和详细的使用方法

    1. 循环的定义,反复做某事,具有明确的开始和结束.   2. 在Python中循环有while和for两种方式: While循环:1) 语法结构 >>> while 条件: ... ...

  4. python 中进制转换及format(),int()函数用法

    python中数值型变量好像只能是十进制形式表示,其他类型变量只能以字符串形式存在,可以通过format函数将int类型变量转换成其他进制字符串,如下所示: v_code=15 # 2进制 x=for ...

  5. Python中倒转输入序列元素顺序的reversed函数

    reversed函数将输入的序列的元素倒转后存储到一个类型为"reversed"可迭代对象,不能直接访问,可以转换为其他对象如列表或通过for循环方法访问. 注意:这里是倒转不是倒 ...

  6. python中的类的成员变量以及property函数

    1 python类的各种变量 1.1 全局变量 在类外定义的变量. 1.2 类变量 定义在类里面,所有的函数外面的变量.这个变量只有一份,是所有的对象共有的.在类外用“类.”来引用. 1.3 实例变量 ...

  7. 记录一些Python中不常用但非常好用的函数

    zfill(): 方法返回指定长度的字符串,原字符串右对齐,前面填充0. print('Helloworld'.zfill(50))0000000000000000000000000000000000 ...

  8. python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分

    一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行js ...

  9. python中获取python版本号的方法【转】

    原文 python3 #!/usr/bin/python # 第1种方法 import platform print(platform.python_version()) >>> i ...

随机推荐

  1. 苹果 appstore 上架 ipv6 服务 配置

    前言 好久之前的事了,苹果审核突然要求ipv6,一片哀嚎. 研究了好久找到了基于阿里云经典网络Windows Server的配置方法. https://bbs.aliyun.com/read/2849 ...

  2. 冰多多团队Gamma阶段发布说明

    Bingduoduo 语音Coding(Gamma):项目Github地址 Gamma版本新功能介绍 在gamma阶段我们推出了一个更加完整的IDE,完善了部分编辑器功能,并且优化了UI,增添了新的s ...

  3. python 'utf-8' codec can't decode byte 0xb8 in position 0: invalid start byte

    在导入csv文件中,出现如上所示的错误,经过查阅资料,解决方法如下: 方法一: pd.read_csv(file_path, encoding='unicode_escape') 方法二: pd.re ...

  4. Python3+Robot Framework+RIDE安装使用教程

    一.说明 Python3----网上很多文章都是用Python2,Robot Framework的部分文档没更新也直接写着不支持Python3(如RIDE does not yet support P ...

  5. 国产服务器创建GSCloud实例统计

    1. GSCloud 201909 版本 完整的数据库实例 龙芯上面的瀚高4.3.4.3 数据库实例 安装耗时: 服务器配置: 龙芯3A 四核 .45G 内存8G HDD硬盘 安装耗时: 52min ...

  6. 观察者(Observer)模式

    观察者模式又叫做发布-订阅模式(Publish.Subscribe)模式.模型-视图模式(Model/View)模式.源-监听器模式(Source/Listener)模式或从属者(Dependents ...

  7. 查看电脑已保存的wifi及密码

    1. 查看以保存的wifi名称  打开cmd(win+r) #查看已保存WiFi名称 netsh wlan show profiles 2. 查看已保存的wifi的密码 netsh wlan show ...

  8. Windows定时清理文件处理脚本

    一.运行CMD,输入forfile/?,即可获取forfile的使用方法 /P  路径 /M  文件类型 /D  时间   + | -     +:之后    - :之前   example:-2   ...

  9. LinkedList、ArrayList、Vector三者的关系与区别?

    LinkedList.ArrayList.Vector三者的关系与区别? 区分ArrayList,Vector,LinkedList的区别 ArrayList,Vector的区别: 1.出现版本:Ar ...

  10. Oracle分页查询和SQL server分页查询总结

    分页查询是项目中必不可少的一部分,难倒是不难,就是这些东西,长时间不用,就忘的一干二净了.今天特此总结一下这两款数据库分页查询的实现过程(只记录效率比较高的) 一.Oracle中的分页查询 1.通用分 ...