Skip to content

Commit e307342

Browse files
Merge pull request #2 from fearlessspider/develop
Develop
2 parents c9e25ee + 4fcbbab commit e307342

File tree

21 files changed

+346
-117
lines changed

21 files changed

+346
-117
lines changed

.pypirc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[disutils]
1+
[distutils]
22
index-servers =
33
pypi
44

Makefile

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
PROJECT_NAME = django_logger
2+
SHELL := /bin/sh
3+
help:
4+
@echo "Please use 'make <target>' where <target> is one of"
5+
@echo " all to setup the whole development environment for the project"
6+
@echo " env to create the virtualenv for the project"
7+
@echo " setup_dev install the requirements to the virtualenv"
8+
@echo " migrations create new migrations"
9+
@echo " migrate update database with latest changes"
10+
@echo " run_dev start the development server"
11+
@echo " docs compile documentation"
12+
@echo " clean clean environment"
13+
14+
HERE = $(shell pwd)
15+
VENV = $(HERE)/venv
16+
BIN = $(VENV)/bin
17+
PYTHON = $(BIN)/python3
18+
VIRTUALENV = python3 -m venv
19+
MAKE = make
20+
21+
.PHONY: all test docs
22+
23+
dev: all setup_dev migrate
24+
25+
all: clean env
26+
27+
env:
28+
$(VIRTUALENV) $(VENV)
29+
30+
clean:
31+
rm -rf $(VENV)
32+
rm -rf build
33+
rm -rf dist
34+
find . -name "*.pyc" -exec rm -rf {} \;
35+
36+
test_dependencies:
37+
$(BIN)/pip3 install -e ".[tests]"
38+
39+
test: test_dependencies
40+
$(BIN)/tox
41+
42+
docs_depedencies:
43+
$(BIN)/pip3 install -e ".[docs]"
44+
45+
docs: docs_depedencies
46+
cd docs && $(MAKE) html SPHINXBUILD=$(VENV)/bin/sphinx-build
47+
48+
run_dev: setup_dev
49+
$(PYTHON) django_logger_project/manage.py
50+
51+
setup_dev:
52+
$(BIN)/pip3 install -e ".[dev]"
53+
54+
migrations:
55+
$(PYTHON) makemigrations.py
56+
57+
migrate:
58+
$(PYTHON) migrate.py
59+
60+
twine:
61+
$(PYTHON) setup.py sdist
62+
$(PYTHON) setup.py bdist_wheel
63+
$(BIN)/twine upload dist/*

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ Log exceptions, errors and user activity for Django
66

77
> INSTALLED_APPS = [ ... 'django_logger', ]
88
9-
2. Run python manage.py migrate to create the django_logger models.
9+
2. Add 'django_logger.middleware.RequestLoggingMiddleware' to your MIDDLEWARE setting like this::
10+
11+
> MIDDLEWARE = [
12+
...,
13+
'django_logger.middleware.RequestLoggingMiddleware',
14+
]
15+
16+
3. Run python manage.py migrate to create the django_logger models.
1017

1118
4. Visit http://127.0.0.1:8000/admin/ to see logs.

boot_django.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
def boot_django():
1111
settings.configure(
12+
DJANGO_LOGGER_APPLICATION="DJANGO LOGGER",
1213
BASE_DIR=BASE_DIR,
1314
DEBUG=True,
1415
DATABASES={

django_logger/admin.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from django.contrib import admin
22
from django.utils.translation import gettext_lazy as _
33

4-
from django_logger.models import LogRecord, RemoteRequestLog, ActionLog
4+
from django_logger.models import Event, Remote, Action
55

66

7-
class LogRecordAdmin(admin.ModelAdmin):
7+
class EventAdmin(admin.ModelAdmin):
88
list_display = ('timestamp', 'application', 'origin_server', 'client_ip', 'username', 'logger', 'level', 'message')
99
list_filter = ('application', 'origin_server', 'username', 'logger', 'level')
1010
search_fields = ('application', 'origin_server', 'client_ip', 'username', 'logger', 'level', 'message')
@@ -52,18 +52,18 @@ class LogRecordAdmin(admin.ModelAdmin):
5252
)
5353

5454

55-
class RemoteRequestLogAdmin(admin.ModelAdmin):
55+
class RemoteAdmin(admin.ModelAdmin):
5656
list_display = ('timestamp', 'status_code')
5757
list_filter = ('timestamp', 'status_code')
5858
search_fields = ('request', 'response', 'status_code')
5959

6060

61-
class ActionLogAdmin(admin.ModelAdmin):
61+
class ActionAdmin(admin.ModelAdmin):
6262
list_display = ('timestamp', 'user_username', 'action', 'object_text')
6363
list_filter = ('user_username', 'section', 'action')
6464
search_fields = ('user_username', 'section', 'action', 'object_text')
6565

6666

67-
admin.site.register(LogRecord, LogRecordAdmin)
68-
admin.site.register(RemoteRequestLog, RemoteRequestLogAdmin)
69-
admin.site.register(ActionLog, ActionLogAdmin)
67+
admin.site.register(Event, EventAdmin)
68+
admin.site.register(Remote, RemoteAdmin)
69+
admin.site.register(Action, ActionAdmin)

django_logger/handlers.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from django.urls import reverse
1111

1212
from django_logger.middleware import RequestLoggingMiddleware
13-
from django_logger.models import LogRecord
13+
from django_logger.models import Event
1414

1515

1616
class ExceptionLoggingHandler(logging.Handler):
@@ -21,7 +21,7 @@ class ExceptionLoggingHandler(logging.Handler):
2121

2222
def get_debug_page(self, record, request):
2323
"""
24-
Given a logging.LogRecord and a Django request that encountered an
24+
Given a django_logger.Event and a Django request that encountered an
2525
exception, create a Django server error debugging page.
2626
"""
2727

@@ -36,7 +36,7 @@ def get_debug_page(self, record, request):
3636

3737
def get_stack_trace(self, record, request):
3838
"""
39-
Given a logging.LogRecord and a Django request that encountered an
39+
Given a django_logger.Event and a Django request that encountered an
4040
exception, collect a stack trace.
4141
"""
4242

@@ -65,14 +65,11 @@ def emit(self, record):
6565
static_path = getattr(settings, "STATIC_ROOT", "")
6666

6767
stack_trace = self.get_stack_trace(record, request)
68-
millis = int(round(time.time() * 1000))
69-
# file = open(static_path + "/../logs/" + str(millis) + ".html", "w")
70-
# file.write(stack_trace)
71-
# file.close()
72-
#debug_page = self.get_debug_page(record, request)
68+
debug_page = self.get_debug_page(record, request)
7369

7470

75-
LogRecord.objects.create(
71+
Event.objects.create(
72+
application=settings.DJANGO_LOGGER_APPLICATION,
7673
logger=record.name,
7774
level=record.levelname,
7875
message=record.msg,
@@ -81,8 +78,7 @@ def emit(self, record):
8178
username=getattr(record, "username", "?"),
8279
user_pk=getattr(record, "user_pk", None),
8380
stack_trace=stack_trace,
84-
# debug_page=debug_page // Need Handle Polish Unicode Characters
85-
debug_page=''
81+
debug_page=debug_page
8682
)
8783

8884

@@ -120,9 +116,7 @@ def emit(self, record):
120116
if record.exc_info:
121117
stack_trace = self.get_stack_trace(record, request)
122118

123-
# GOD DAMMIT CHARS
124-
# message = u"%s\n\n%s" % (request_link, stack_trace)
125-
message = ''
119+
message = u"%s\n\n%s" % (request_link, stack_trace)
126120

127121
mail.mail_admins(
128122
subject,

django_logger/locale/ en/LC_MESSAGES/django.po

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: PACKAGE VERSION\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2021-03-06 18:35+0100\n"
11+
"POT-Creation-Date: 2021-03-07 13:41+0100\n"
1212
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -33,89 +33,89 @@ msgstr ""
3333
msgid "Exception details"
3434
msgstr ""
3535

36-
#: django_logger/models.py:57
36+
#: django_logger/models.py:52
3737
msgid "The application logging this record."
3838
msgstr ""
3939

40-
#: django_logger/models.py:63
40+
#: django_logger/models.py:58
4141
msgid "The server logging this record."
4242
msgstr ""
4343

44-
#: django_logger/models.py:70
44+
#: django_logger/models.py:65
4545
msgid "The IP address of the client making the request."
4646
msgstr ""
4747

48-
#: django_logger/models.py:79 django_logger/models.py:190
48+
#: django_logger/models.py:74 django_logger/models.py:173
4949
msgid ""
5050
"The primary key of the user making the request in which this record was "
5151
"logged."
5252
msgstr ""
5353

54-
#: django_logger/models.py:84 django_logger/models.py:196
54+
#: django_logger/models.py:79 django_logger/models.py:179
5555
msgid ""
5656
"The username of the user making the request in which this record was logged."
5757
msgstr ""
5858

59-
#: django_logger/models.py:91 django_logger/models.py:130
59+
#: django_logger/models.py:86 django_logger/models.py:122
6060
msgid "The UUID of the Django request in which this record was logged."
6161
msgstr ""
6262

63-
#: django_logger/models.py:98
63+
#: django_logger/models.py:93
6464
msgid "The name of the logger of the record."
6565
msgstr ""
6666

67-
#: django_logger/models.py:104
67+
#: django_logger/models.py:99
6868
msgid "The level of the log record (DEBUG, INFO...)"
6969
msgstr ""
7070

71-
#: django_logger/models.py:158 django_logger/models.py:159
71+
#: django_logger/models.py:147 django_logger/models.py:148
7272
msgid "Console"
7373
msgstr ""
7474

75-
#: django_logger/models.py:160
75+
#: django_logger/models.py:149
7676
msgid "Admin"
7777
msgstr ""
7878

79-
#: django_logger/models.py:172
79+
#: django_logger/models.py:159
8080
msgid "Log In"
8181
msgstr ""
8282

83-
#: django_logger/models.py:173
83+
#: django_logger/models.py:160
8484
msgid "Log Out"
8585
msgstr ""
8686

87-
#: django_logger/models.py:174
87+
#: django_logger/models.py:161
8888
msgid "Change Password"
8989
msgstr ""
9090

91-
#: django_logger/models.py:175
91+
#: django_logger/models.py:162
9292
msgid "User Update"
9393
msgstr ""
9494

95-
#: django_logger/models.py:176
95+
#: django_logger/models.py:163
9696
msgid "User Delete"
9797
msgstr ""
9898

99-
#: django_logger/models.py:209
99+
#: django_logger/models.py:190
100100
msgid "The Backend/APP section in which this record was logged."
101101
msgstr ""
102102

103-
#: django_logger/models.py:216
103+
#: django_logger/models.py:197
104104
msgid "The Backend/APP action in which this record was logged."
105105
msgstr ""
106106

107-
#: django_logger/models.py:224
107+
#: django_logger/models.py:203
108108
msgid "The primary key of the object in which this record was logged."
109109
msgstr ""
110110

111-
#: django_logger/models.py:231
111+
#: django_logger/models.py:210
112112
msgid "The name or definition of the object in which this record was logged."
113113
msgstr ""
114114

115-
#: django_logger/models.py:242
115+
#: django_logger/models.py:219
116116
msgid "The previous value when this record was logged."
117117
msgstr ""
118118

119-
#: django_logger/models.py:247
119+
#: django_logger/models.py:224
120120
msgid "The current value when this record was logged."
121121
msgstr ""

0 commit comments

Comments
 (0)