import time
import inspect
import logging
from functools import partial
logging.basicConfig(
format="[%(asctime)s] [%(levelname)s] [%(pathname)s] [line:%(lineno)d] %(message)s",
level=logging.INFO,
)
THIS_FILE_NAME = __file__
def cilog_get_timestamp():
"""
功能描述:获取本地时间,并以字符串的方式返回
参数:NA
返回值:指定时间格式的字符串
异常描述:
修改记录:1.日期 : 2012年7月25日
修改内容: 创建函数
"""
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
def cilog_logmsg(log_level, filename, line_no, log_msg, *log_paras):
log_timestamp = cilog_get_timestamp()
msg = "[%s] [%s] [%s] [%s] %s" % (
log_timestamp,
log_level,
filename,
line_no,
log_msg % log_paras[0] if log_paras else log_msg,
)
log_methods = {
"ERROR": logging.error,
"WARNING": logging.warning,
"INFO": logging.info,
}
log_func = log_methods.get(log_level, logging.info)
log_func(msg)
return
def cilog_error(filename, log_msg, *log_paras):
"""
功能描述:ERROR级别的log打印
参数:1.filename: 调用的文件名称
2.log_msg: 字符串
3.*log_paras: 可变参数
返回值:
异常描述:
修改记录:1.日期 : 2012年7月25日
修改内容: 创建函数
"""
line_no = inspect.currentframe().f_back.f_lineno
cilog_logmsg("ERROR", filename, line_no, log_msg, log_paras)
return
def cilog_warning(filename, log_msg, *log_paras):
"""
功能描述:WARNING级别的log打印
参数:1.filename: 调用的文件名称
2.log_msg: 字符串
3.*log_paras: 可变参数
返回值:
异常描述:
修改记录:1.日期 : 2012年7月25日
修改内容: 创建函数
"""
line_no = inspect.currentframe().f_back.f_lineno
cilog_logmsg("WARNING", filename, line_no, log_msg, log_paras)
return
def cilog_info(filename, log_msg, *log_paras):
"""
功能描述:INFO级别的log打印
参数:1.filename: 调用的文件名称
2.log_msg: 字符串
3.*log_paras: 可变参数
返回值:
异常描述:
修改记录:1.日期 : 2012年7月25日
修改内容: 创建函数
"""
line_no = inspect.currentframe().f_back.f_lineno
cilog_logmsg("INFO", filename, line_no, log_msg, log_paras)
return
def auto_fill_filename(func):
"""自动填充文件名参数。"""
filename = inspect.stack()[1].filename
return partial(func, filename)
if __name__ == "__main__":
i = 0
while i < 3:
cilog_error(THIS_FILE_NAME, "%s say %s %d times", "I", "Hello world", i)
i += 1