|
|

楼主 |
发表于 2020-2-11 23:54:52
|
显示全部楼层
源代码比较多就不发了,大概意思是如下代码这样的:
- import os
- import time
- import logging
- import sys
- from functools import wraps
- import traceback
- def get_logger():
- log_dir1 = "logs"
- today = time.strftime('%Y%m%d', time.localtime(time.time()))
- full_path = os.path.join(log_dir1, today)
- if not os.path.exists(full_path):
- os.makedirs(full_path)
- log_path = os.path.join(full_path, "log.log")
- logger = logging.getLogger("log")
- if not logger.handlers:
- formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
- file_handler = logging.FileHandler(log_path, encoding="utf8")
- file_handler.setFormatter(formatter)
- console_handler = logging.StreamHandler(sys.stdout)
- console_handler.formatter = formatter
- logger.addHandler(file_handler)
- logger.addHandler(console_handler)
- logger.setLevel(logging.INFO)
- return logger
- def decoratore(func):
- @wraps(func)
- def log(*args, **kwargs):
- try:
- t0 = time.time()
- t = func(*args, **kwargs)
- get_logger().info(t)
- t1 = time.time()
- func_time = t1 - t0
- get_logger().info(f'{func.__name__} 操作执行完成,用时:{func_time}')
- return t
- except Exception as e:
- get_logger().error(f"{func.__name__} 操作出错!以下是错误信息:\n{traceback.format_exc()}")
- return log
- # 这个函数在软件中有对应的功能菜单:加钱
- @decoratore
- def a_func():
- print('开始运行A函数')
- # 这个函数在软件中有对应的功能菜单:加速
- @decoratore
- def b_func():
- print('开始运行B函数')
- # 这个函数在软件中有对应的功能菜单:主程序
- @decoratore
- def main():
- a_func()
- time.sleep(10)
- b_func()
- if __name__ == '__main__':
- main()
复制代码
程序运行以后 记录的日志是这样的:
- 2020-02-11 23:50:48,813 INFO : None
- 2020-02-11 23:50:48,813 INFO : a_func 操作执行完成,用时:0.0019965171813964844
- 2020-02-11 23:50:58,813 INFO : None
- 2020-02-11 23:50:58,814 INFO : b_func 操作执行完成,用时:0.0
- 2020-02-11 23:50:58,814 INFO : None
- 2020-02-11 23:50:58,814 INFO : main 操作执行完成,用时:10.00338339805603
复制代码
我希望的日志是:
加速操作执行完成
加钱操作执行完成
主程序操作执行完成 |
|