• 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)
    复制代码
  • 相关阅读:
    scrollView(3)-相册浏览简单的缩放
    ScrollView(2)轮播图-点击跳转
    定制单元格-cell
    模态视图present
    将博客搬至CSDN
    VBS进行http请求及JSON数据的读取和生成
    igraph安装(R/Python)
    teiid入门
    漫谈设计模式
    MapReduce实例-基于内容的推荐(一)
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/12266768.html
Copyright © 2020-2023  润新知