python - django记录访问到日志文件中
PHP中文网
PHP中文网 2017-04-18 09:16:20
0
1
297

我需要把用户的日志访问日志到文件中,我在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

这让人很苦恼。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
刘奇

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板