python - django记录访问到日志文件中

查看:483
本文介绍了python - django记录访问到日志文件中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我需要把用户的日志访问日志到文件中,我在setting.py中做了以下处理。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
        'log': {
            'format': '%(levelname)s %(asctime)s %(message)s'
        }
    },
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
        'console': {
            'class': 'logging.StreamHandler',
        },
        'file': {
            'level': 'INFO',
            'class': 'api.Handler.FileHandler', #自定义的类
            'filename': '/var/log/django.log',
            'formatter': 'ndautolog'
        }
    },
    'loggers': {
        #default
        '': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'INFO',
        },
        'django.request': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

然后在日志中只获取到了warn或更高级别的错误:

WARNING 2016-07-29 15:38:09,901 Not Found: /web/xxxxxx/ post:{
    "check_cmd":"ps -ef |grep xxxxx.xxxx.com|grep nginx |grep -v grep",
    "cmd":"/usr/local/tomcat/xxxxxx.xxxx.com/startup/run.sh",
    "boss_key":"33333333333333333"
}
WARNING 2016-07-29 15:38:09,901 Not Found: /web/xxxxxx/ post:{
    "check_cmd":"ps -ef |grep xxxxx.xxxx.com|grep nginx |grep -v grep",
    "cmd":"/usr/local/tomcat/xxxxxx.xxxx.com/startup/run.sh",
    "boss_key":"33333333333333333"
}
WARNING 2016-07-29 15:38:09,901 Not Found: /web/xxxxxx/ post:{
    "check_cmd":"ps -ef |grep xxxxx.xxxx.com|grep nginx |grep -v grep",
    "cmd":"/usr/local/tomcat/xxxxxx.xxxx.com/startup/run.sh",
    "boss_key":"33333333333333333"
}

我试过在django''中加入'handlers': ['console', 'file'],,但保存的信息不是我要的:

INFO 2016-07-29 15:29:03,888 Scheduler started
DEBUG 2016-07-29 15:29:03,890 Looking for jobs to run
DEBUG 2016-07-29 15:29:03,890 No jobs; waiting until a job is added

这让人很苦恼。

解决方案

其实你完全没必要把记录日志的工作交给项目来处理
直接丢给nginx来处理就行了,配置nginx的access_log,所有访问都会被记录下来

这篇关于python - django记录访问到日志文件中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆