Merge branch 'devel'
[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         'request': {
21             'format': '[%(asctime)s] %(levelname)-8s %(client)16s - %(status_code)s - %(message)s',
22             'datefmt': DATE_FORMAT,
23         },
24         'simple': {
25             'format': '[%(asctime)s] %(levelname)-8s - %(message)s',
26             'datefmt': DATE_FORMAT,
27         },
28         'verbose': {
29             'format': '[%(asctime)s] %(levelname)-8s - %(filename)s:%(lineno)s in %(funcName)s - %(message)s',
30             'datefmt': DATE_FORMAT,
31         },
32         'gridftp': {
33             'format': '[%(asctime)s] %(levelname)-8s - %(path)s - <%(user)s> - %(params)s - %(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         },
47         'main': {
48             'level': 'INFO',
49             'class': 'logging.handlers.RotatingFileHandler',
50             'filename': os.path.join(LOGS_DIR, 'main.log'),
51             'maxBytes': 1024 * 1024 * 5,  # 5 MB
52             'backupCount': 10,
53             'formatter': 'request',
54             'filters': ['request_filter']
55         },
56         'request': {
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': {
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': 'simple',
71         },
72         'sql': {
73             'level': 'DEBUG',
74             'class': 'logging.handlers.RotatingFileHandler',
75             'filename': os.path.join(LOGS_DIR, 'sql.log'),
76             'maxBytes': 1024 * 1024 * 5,  # 5 MB
77             'formatter': 'simple',
78         },
79         'service': {
80             'level': 'DEBUG',
81             'class': 'logging.handlers.RotatingFileHandler',
82             'filename': os.path.join(LOGS_DIR, 'service.log'),
83             'maxBytes': 1024 * 1024 * 5,  # 5 MB
84             'formatter': 'verbose',
85         },
86         'gridftp': {
87             'level': 'DEBUG',
88             'class': 'logging.handlers.RotatingFileHandler',
89             'filename': os.path.join(LOGS_DIR, 'gridftp.log'),
90             'maxBytes': 1024 * 1024 * 5,  # 5 MB
91             'formatter': 'gridftp',
92         },
93     },
94     'loggers': {
95         'django': {
96             'handlers': ['main'],
97             'level': 'INFO',
98         },
99         'django.request': {
100             'handlers': ['request'],
101             'level': 'INFO',
102             'propagate': False,
103         },
104         'django.db.backends': {
105             'handlers': ['sql'],
106             'level': 'DEBUG',
107             'propagate': False,
108         },
109         'openid': {
110             'handlers': ['openid'],
111             'level': 'INFO',
112         },
113         'qcg.service': {
114             'handlers': ['service'],
115             'level': 'INFO',
116             'propagate': False,
117         },
118         'gridftp': {
119             'handlers': ['gridftp'],
120             'level': 'INFO',
121         },
122
123     }
124 }