十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了怎么在django中添加一个日志功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联是一家专业提供同德企业网站建设,专注与成都做网站、网站设计、H5页面制作、小程序制作等业务。10年已为同德众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。在settings中配置以下代码
#LOGGING_DIR 日志文件存放目录 LOGGING_DIR = "logs" # 日志存放路径 if not os.path.exists(LOGGING_DIR): os.mkdir(LOGGING_DIR) import logging LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { #格式化器 'standard': { 'format': '[%(levelname)s][%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d] > %(message)s' }, 'simple': { 'format': '[%(levelname)s]> %(message)s' }, }, 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'simple' }, 'file_handler': { 'level': 'INFO', 'class': 'logging.handlers.TimedRotatingFileHandler', 'filename': '%s/django.log' % LOGGING_DIR, #具体日志文件的名字 'formatter':'standard' }, # 用于文件输出 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'formatter':'standard' }, }, 'loggers': { #日志分配到哪个handlers中 'mydjango': { 'handlers': ['console','file_handler'], 'level':'DEBUG', 'propagate': True, }, 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': False, }, ####如果要将get,post请求同样写入到日志文件中,则这个触发器的名字必须交django,然后写到handler中 } }
在settings中写完配置之后,下面就要具体到相应的视图函数中了。注意:这里我们在实施到具体函数或方法的时候需要手动捕获异常
然后视图函数中
#这里我们模拟一个登陆来写 log = logging.getLogger('mydjango') #这里的mydjango是settings中loggers里面对应的名字 class Login(View): def get(self,request): return render(request,'login.html') def post(self,request): user = request.POST.get('username') pwd = request.POST.get('password') try: s = 1/0 except Exception as e: log.error(e)
上述内容就是怎么在django中添加一个日志功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联成都网站设计公司行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。