一、####用logging的四大组件来实现日志的功能
- 打印出函数执行的时间,日志的等级,日志的消息
- 用装饰器
- 不同的日志,要记录不同等级的日志消息
----------------------------------------------
error_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
logger.addHandler(debug_handler)
logger.addHandler(error_handler)
def log(func):
def wrapper(*arg, **kw):
logger.debug("this is a debugger info")
logger.error("this is a error info")
return func(*arg, **kw)
return wrapper
def wrapper(*arg, **kw):
logger.debug("this is a debugger info")
logger.error("this is a error info")
return func(*arg, **kw)
return wrapper
def loghigher(text):
def decorator(func):
def wrapper(*arg, **kw):
logger.debug(text)
logger.error(text)
return func(*arg, **kw)
return wrapper
return decorator
def decorator(func):
def wrapper(*arg, **kw):
logger.debug(text)
logger.error(text)
return func(*arg, **kw)
return wrapper
return decorator
# 按照函数的不同,要在日志中打印出不同的东西
@log
def test():
print("test done")
@loghigher("this is test1 done")
def test1():
print("test1 done")
@loghigher("this is main done")
def main():
print("main done")
test1()
main()
@log
def test():
print("test done")
@loghigher("this is test1 done")
def test1():
print("test1 done")
@loghigher("this is main done")
def main():
print("main done")
test1()
main()
----------------------------------------------
#### 一般情况我们在实际的工作当中,我们经常把logging封装成一个装饰器,按照我自己的习惯,我是习惯新建一个loggerTools的文件,
### 在需要保存日志的地方,把loggerTools给引进进来。