forked from garmoncheg/django-log-file-viewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
87 lines (64 loc) · 2.82 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Django Log File Viewer.
Useful to add log files view functionality to your Django admin web site.
Instead of using database log files storage, it gives you ability to store/view log files through GUI.
It requires a directory with Django log files to function. E.g. directory structure:
$ project_dir/logs/:
applog.log
applog.log.2012-09-22
...
errors.log
applog.log.2012-09-22
...
To parse/display these log files you need:
## 1. Install an app and add it to your settings.py INSTALLED_APPS section:
# settings.py
INSTALLED_APPS = (
...
'django-log-file-viewer',
...
)
## 2. Set UP 2 django variables in settings.py:
# settings.py:
LOG_FILES_DIR = '/path/to/your/log/directory'
Relative or static path string of your log files directory.
I recommend using more pythonic way of defining tis with os module. E.g. :
# settings.py:
LOG_FILES_DIR = os.path.join(APP_PATH, 'testdata', 'log')
where APP_PATH is your app's/project's path.
LOG_FILES_RE = /
'(?P<date>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s\[(?P<type>[A-Z]+)\]\s(?P<message>.+)'
Is a regex to parse your log file against.
It completely depends of your Django logging settings.
And table column names (in a parsed logfile)
depend from group names you provide in the regexp.
E.g. for Django logging server to parse with this regexp
you need to have log, as in example
django_log_file_viewer/testdata/testing.log file.
to produce this log I've added this formatter to my website.
'formatters': {
'verbose': {
'format': '%(asctime)s [%(levelname)s] %(message)s'
},
},
## 3. And add urls to your main urls section:
# urls.py
urlpatterns = patterns('',
# Include this before admin to enable app admin url overrides
# Note url must be the same as admin
# This is required step
url(r'^admin/', include('django-log-file-viewer.admin_urls')),
url(r'^admin/', include(admin.site.urls)),
# To view with custom views:
# Optional step
# Will ad urls like www.example.com/logfiles/
url(r'', include('django-log-file-viewer.urls')),
)
## TODO's:
* Add pagination to log files list
* Ability to download all log files in a single archive using python data
* add some style to log files list (maybe table, like log files lines list)
## Reference:
* [Ref] Info on how to add/config logging for your Django based website here:
https://docs.djangoproject.com/en/dev/topics/logging/ (Official Django documentation)
* [Ref] Parsing/testing Regexp is useful with:
http://gskinner.com/RegExr/ (real time regexp testing)