This repository was archived by the owner on Oct 6, 2020. It is now read-only.
File tree 6 files changed +56
-10
lines changed
6 files changed +56
-10
lines changed Original file line number Diff line number Diff line change @@ -85,3 +85,9 @@ Quick start
85
85
except Exception as e:
86
86
db_logger.exception(e)
87
87
88
+
89
+
90
+ Options
91
+ -------
92
+ 1. DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE: integer. list per page in admin view. default ``10 ``
93
+ 2. DJANGO_DB_LOGGER_ENABLE_FORMATTER: boolean. Using ``formatter `` options to format message.``True`` or ``False ``, default ``False ``
Original file line number Diff line number Diff line change 44
44
},
45
45
},
46
46
'handlers' : {
47
- 'db ' : {
47
+ 'db_handler ' : {
48
48
'level' : 'DEBUG' ,
49
- 'class' : 'django_db_logger.db_log_handler.DatabaseLogHandler'
49
+ 'class' : 'django_db_logger.db_log_handler.DatabaseLogHandler' ,
50
+ 'formatter' : 'verbose'
50
51
}
51
52
},
52
53
'loggers' : {
53
- 'db_logger ' : {
54
- 'handlers' : ['db ' ],
54
+ 'db ' : {
55
+ 'handlers' : ['db_handler ' ],
55
56
'level' : 'DEBUG'
56
57
}
57
58
}
58
59
}
59
60
61
+ DJANGO_DB_LOGGER_ENABLE_FORMATTER = True
62
+ DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE = 30
63
+
60
64
TEMPLATES = [
61
65
{
62
66
'BACKEND' : 'django.template.backends.django.DjangoTemplates' ,
Original file line number Diff line number Diff line change 4
4
from django .contrib import admin
5
5
from django .utils .html import format_html
6
6
7
+ from django_db_logger .config import DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE
7
8
from .models import StatusLog
8
9
9
10
10
11
class StatusLogAdmin (admin .ModelAdmin ):
11
12
list_display = ('colored_msg' , 'traceback' , 'create_datetime_format' )
12
13
list_display_links = ('colored_msg' , )
13
14
list_filter = ('level' , )
14
- list_per_page = 10
15
+ list_per_page = DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE
15
16
16
17
def colored_msg (self , instance ):
17
18
if instance .level in [logging .NOTSET , logging .INFO ]:
Original file line number Diff line number Diff line change
1
+ from django .conf import settings
2
+
3
+ MSG_STYLE_SIMPLE = 'Simple'
4
+ MSG_STYLE_FULL = 'Full'
5
+
6
+ DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE = getattr (settings , 'DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE' , 10 )
7
+
8
+ DJANGO_DB_LOGGER_ENABLE_FORMATTER = getattr (settings , 'DJANGO_DB_LOGGER_ENABLE_FORMATTER' , False )
Original file line number Diff line number Diff line change 1
1
import logging
2
- import traceback
2
+
3
+ from django_db_logger .config import DJANGO_DB_LOGGER_ENABLE_FORMATTER , MSG_STYLE_SIMPLE
4
+
5
+
6
+ db_default_formatter = logging .Formatter ()
3
7
4
8
5
9
class DatabaseLogHandler (logging .Handler ):
@@ -9,13 +13,36 @@ def emit(self, record):
9
13
trace = None
10
14
11
15
if record .exc_info :
12
- trace = traceback .format_exc ()
16
+ trace = db_default_formatter .formatException (record .exc_info )
17
+
18
+ if DJANGO_DB_LOGGER_ENABLE_FORMATTER :
19
+ msg = self .format (record )
20
+ else :
21
+ msg = record .getMessage ()
13
22
14
23
kwargs = {
15
24
'logger_name' : record .name ,
16
25
'level' : record .levelno ,
17
- 'msg' : record . getMessage () ,
26
+ 'msg' : msg ,
18
27
'trace' : trace
19
28
}
20
29
21
- StatusLog .objects .create (** kwargs )
30
+ StatusLog .objects .create (** kwargs )
31
+
32
+ def format (self , record ):
33
+ if self .formatter :
34
+ fmt = self .formatter
35
+ else :
36
+ fmt = db_default_formatter
37
+
38
+ if type (fmt ) == logging .Formatter :
39
+ record .message = record .getMessage ()
40
+
41
+ if fmt .usesTime ():
42
+ record .asctime = fmt .formatTime (record , fmt .datefmt )
43
+
44
+ # ignore exception traceback and stack info
45
+
46
+ return fmt .formatMessage (record )
47
+ else :
48
+ return fmt .format (record )
Original file line number Diff line number Diff line change 47
47
}
48
48
}
49
49
50
- SECRET_KEY = 'https://ciciui.com/ '
50
+ SECRET_KEY = 'jfkladsjfakljr;els '
You can’t perform that action at this time.
0 commit comments