hide no items info on error
[qcg-portal.git] / plgng / settings_logging.py
1 import logging
2 import os
3
4 BASE_DIR = os.path.dirname(os.path.dirname(__file__))
5 LOGS_DIR = os.path.join(BASE_DIR, 'logs')
6
7
8 class RequestFilter(logging.Filter):
9     def filter(self, record):
10         record.client = record.request.META.get('REMOTE_HOST') or record.request.META.get('REMOTE_ADDR')
11         return True
12
13
14 DATE_FORMAT = "%Y.%m.%d %H:%M:%S"
15
16 LOGGING = {
17     'version': 1,
18     'disable_existing_loggers': False,
19     'formatters': {
20         'verbose': {
21             'format': '[%(asctime)s] %(levelname)-8s - %(status_code)s - %(message)s',
22             'datefmt': DATE_FORMAT,
23         },
24         'simple': {
25             'format': '%(levelname)s %(message)s',
26             'datefmt': DATE_FORMAT,
27         },
28         'request': {
29             'format': '[%(asctime)s] %(levelname)-8s %(client)16s - %(status_code)s - %(message)s',
30             'datefmt': DATE_FORMAT,
31         },
32         'date_msg': {
33             'format': '[%(asctime)s] %(levelname)-8s %(message)s',
34             'datefmt': DATE_FORMAT,
35         },
36     },
37     'filters': {
38         'request_filter': {
39             '()': 'plgng.settings_logging.RequestFilter',
40         },
41     },
42     'handlers': {
43         'console': {
44             'level': 'DEBUG',
45             'class': 'logging.StreamHandler',
46             'formatter': 'simple'
47         },
48         'main_log': {
49             'level': 'INFO',
50             'class': 'logging.handlers.RotatingFileHandler',
51             'filename': os.path.join(LOGS_DIR, 'main.log'),
52             'maxBytes': 1024 * 1024 * 5,  # 5 MB
53             'backupCount': 10,
54             'formatter': 'verbose'
55         },
56         'request_log': {
57             'level': 'INFO',
58             'class': 'logging.handlers.RotatingFileHandler',
59             'filename': os.path.join(LOGS_DIR, 'requests.log'),
60             'maxBytes': 1024 * 1024 * 5,  # 5 MB
61             'backupCount': 10,
62             'formatter': 'request',
63             'filters': ['request_filter']
64         },
65         'openid_log': {
66             'level': 'INFO',
67             'class': 'logging.handlers.RotatingFileHandler',
68             'filename': os.path.join(LOGS_DIR, 'openid.log'),
69             'maxBytes': 1024 * 1024 * 5,  # 5 MB
70             'formatter': 'request',
71             'filters': ['request_filter']
72         },
73         'sql_log': {
74             'level': 'DEBUG',
75             'class': 'logging.handlers.RotatingFileHandler',
76             'filename': os.path.join(LOGS_DIR, 'sql.log'),
77             'maxBytes': 1024 * 1024 * 5,  # 5 MB
78             'formatter': 'date_msg',
79         },
80     },
81     'loggers': {
82         'django': {
83             'handlers': ['main_log'],
84             'level': 'INFO',
85         },
86         'django.request': {
87             'handlers': ['request_log'],
88             'level': 'INFO',
89             'propagate': False,
90         },
91         'django.db.backends': {
92             'handlers': ['sql_log'],
93             'level': 'DEBUG',
94             'propagate': False,
95         },
96         'openid': {
97             'handlers': ['openid_log'],
98             'level': 'INFO',
99         },
100     }
101 }