这篇文章主要还是想提高开发效率,将以前项目中经常会用到的方法提取出来,方便其他项目复用,所以这篇文章将是一篇持续更新的文章,但是不要指望更新的频率会更高,不是所有可以独立的组件都值得记录。
我这里没有顺序之分,想到哪里就写哪里。
日志
日志记录应该是我们开发中使用频率较高的必备功能之一吧,它的重要性不言而喻,这里只是做了一个很简单的封装,主要是方便以后你想对日志有进一步的处理,那把它独立出来是最好不过的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import traceback
from django.conf import settings
def log_error(log, title, e, other=None, request=None): """ 提取 Log Error 错误栈 :param log: log instance eg: log_validate = logging.getLogger("validate") :param title: log 标题 :param e: log 错误栈 Exception :param other: log 辅助性描述 :param request: django request :return: """ start_title = f"===================== {settings.WSGI_APPLICATION.split('.')[0]} START {title},错误={e}, {other} START =====================" end_title = "===================== E N D {0} E N D =====================".format(title)
if settings.DEBUG: print("===================== START {0},错误={1}, {2} START =====================".format(title, e, other)) traceback.print_exc()
log.error(start_title) if request is not None: log.error(f"当前请求异常路径uri={request.build_absolute_uri()}") log.exception(e) log.error(end_title)
|
可能大家看到会说你这跟原生区别不大,只是加了一个开始结束记录了一个原始错误堆栈嘛,没错,就是这样。我上面说了独立出来只是为了对日志可以进行进一步操作,比如你的错误日志要发送到指定邮箱,亦或是想要存到数据库、缓存;想要进一步提取请求者IP
,原始URL
之类的信息,你在这里都可以做到,我这样讲你会不会觉得把它独立出来就有意义的多了?