zoukankan      html  css  js  c++  java
  • django中添加日志功能

    官方文档 猛戳这里

    在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)
    复制代码
  • 相关阅读:
    创造别人想要的东西(2)----创业15问
    创造别人想要的东西(1)----创业的本质
    有点迷茫
    普林斯顿大学算法公开课(1)----介绍
    工业控制系统信息安全与信息安全、功能安全的区别【转自工控工程网】
    十条概念区分信息安全与隐私保护【转自安全牛】
    NBT(NetBIOS Over TCP)名称解析概述
    SMB协议概述
    PCI DSS合规建设ASV扫描介绍
    信息安全等级测评师(初级 技术)
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/12266768.html
Copyright © 2011-2022 走看看