Project

General

Profile

Configuring splunk for django » History » Version 4

Luke Murphey, 03/06/2013 08:25 PM

1 1 Luke Murphey
h1. Configuring Splunk for Django
2 1 Luke Murphey
3 1 Luke Murphey
h2. Configuring Django
4 1 Luke Murphey
5 1 Luke Murphey
Django needs to be setup to log files in a particular way for Splunk to read in a way that they can be parsed. To do so, set a formatter to output the time and severity to the logs messages using a formatter of "%(asctime)s [%(levelname)s] %(name)s: %(message)s".
6 1 Luke Murphey
7 1 Luke Murphey
Below is a logging configuration that can be used with the app, add it to your settings file:
8 1 Luke Murphey
9 1 Luke Murphey
<pre>
10 1 Luke Murphey
<code class="python">
11 1 Luke Murphey
LOGGING = {
12 1 Luke Murphey
    'version': 1,
13 1 Luke Murphey
    'disable_existing_loggers': False,
14 1 Luke Murphey
    'formatters': {
15 1 Luke Murphey
        'standard': {
16 4 Luke Murphey
            'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s' #You may need to specify the timezone here. For example: %(asctime)s CST [%(levelname)s] %(name)s: %(message)s
17 1 Luke Murphey
        },
18 1 Luke Murphey
    },
19 1 Luke Murphey
    'filters': {
20 1 Luke Murphey
        'require_debug_false': {
21 1 Luke Murphey
            '()': 'django.utils.log.RequireDebugFalse'
22 1 Luke Murphey
        }
23 1 Luke Murphey
    },
24 1 Luke Murphey
    'handlers': {
25 1 Luke Murphey
        'null': {
26 1 Luke Murphey
            'level':'DEBUG',
27 1 Luke Murphey
            'class':'django.utils.log.NullHandler',
28 1 Luke Murphey
        },
29 1 Luke Murphey
        'console':{
30 1 Luke Murphey
            'level':'DEBUG',
31 1 Luke Murphey
            'class':'logging.StreamHandler'
32 1 Luke Murphey
        },
33 1 Luke Murphey
        'default': {
34 1 Luke Murphey
            'level':'DEBUG',
35 1 Luke Murphey
            'class':'logging.handlers.RotatingFileHandler',
36 1 Luke Murphey
            'filename': '../var/log/app.log', # Make sure that this path exists, change as necessary
37 1 Luke Murphey
            'maxBytes': 1024*1024*5, # 5 MB
38 1 Luke Murphey
            'backupCount': 5,
39 1 Luke Murphey
            'formatter':'standard',
40 1 Luke Murphey
        }
41 1 Luke Murphey
    },
42 1 Luke Murphey
    'loggers': {
43 1 Luke Murphey
        'django.db': {
44 1 Luke Murphey
            'handlers': ['default'],
45 3 Luke Murphey
            'level': 'DEBUG', # Set this to ERROR on production hosts since the database logs are very verbose
46 3 Luke Murphey
            'propagate': False, 
47 1 Luke Murphey
        },
48 1 Luke Murphey
        '': {
49 1 Luke Murphey
            'handlers': ['default'],
50 1 Luke Murphey
            'level': 'DEBUG',
51 1 Luke Murphey
            'propagate': True,
52 1 Luke Murphey
        },
53 1 Luke Murphey
        'django.request': {
54 1 Luke Murphey
            'handlers': ['default'],
55 3 Luke Murphey
            'level': 'DEBUG', # Set this to ERROR on production hosts if you want to avoid lots of warnings for 404 file-not-found notices
56 3 Luke Murphey
            'propagate': False,
57 1 Luke Murphey
        },
58 1 Luke Murphey
    }
59 1 Luke Murphey
}
60 1 Luke Murphey
</code>
61 1 Luke Murphey
</pre>
62 2 Luke Murphey
63 2 Luke Murphey
h2. Configuring Splunk
64 2 Luke Murphey
65 2 Luke Murphey
Setup Splunk to monitor the logs files from your Django installation. Make sure to set the sourcetype to "django". See "docs.splunk.com":http://docs.splunk.com/Documentation/Splunk/latest/Data/MonitorFilesandDirectories for details on how to monitor files with Splunk.