3
3
4
4
import logging
5
5
from telegram_handler .handlers import TelegramHandler
6
- from .utils import SeverityFilter , CustomJSONFormatter , CustomHtmlFormatter , JSONHTTPHandler
6
+ from .utils import SeverityFilter , CustomJSONFormatter , CustomHtmlFormatter , WebhookHandler
7
7
8
8
9
9
DEFAULT_LOGLEVEL = 'DEBUG'
@@ -29,8 +29,10 @@ def get_logger(app_name, app_version=None, app_environment=None, loglevel=DEFAUL
29
29
}
30
30
},
31
31
'webhook': {
32
- 'url': 'https://webhooks.example.com/webhooks',
33
- 'loglevel': 'WARNING' # DEBUG,INFO,WARNING,ERROR,CRITICAL
32
+ 'debug':'https://webhooks.example.com/webhooks?param=1',
33
+ 'info':'https://webhooks.example.com/webhooks?param=2',
34
+ 'error':'https://webhooks.example.com/webhooks?param=3',
35
+ 'warning':'https://webhooks.example.com/webhooks?param=4'
34
36
}
35
37
}
36
38
'''
@@ -41,10 +43,10 @@ def get_logger(app_name, app_version=None, app_environment=None, loglevel=DEFAUL
41
43
formatter_json = CustomJSONFormatter ('{"app": {"name": "%(app_name)s", "localtime": "%(asctime)s", "environment": "%(app_environment)s", "severity": "%(levelname)s", "message": %(message)s, "version": "%(app_version)s", "logger": "%(name)s", "source": "%(pathname)s:%(funcName)s(%(lineno)d)", "source_pathname": "%(pathname)s", "source_funcname": "%(funcName)s", "source_lineno": "%(lineno)d"}}' )
42
44
formatter_telegram = CustomHtmlFormatter (
43
45
use_emoji = True ,
44
- fmt = '<b>%(app_name)s (%(app_version)s)</b> <b>%(levelname)s</b>\n \n <b>Message:</b> <code>%(message)s</code>\n <b>Environment:</b> %(app_environment)s\n <b>Source :</b> %(pathname)s:%(funcName)s(%(lineno)d) \n <b>Datetime :</b> %(asctime)s \n <b>Logger:</b> %(name)s \n '
46
+ fmt = '<b>%(app_name)s (%(app_version)s)</b> <b>%(levelname)s</b>\n \n <b>Message:</b> <code>%(message)s</code>\n <b>Environment:</b> %(app_environment)s\n <b>Datetime :</b> %(asctime)s \n <b>Source :</b> %(pathname)s:%(funcName)s(%(lineno)d) \n '
45
47
)
46
48
47
- # Handler JSON (main)
49
+ # Handler Stream (main)
48
50
handler_json = logging .StreamHandler ()
49
51
handler_json .setFormatter (formatter_json )
50
52
handler_json .setLevel (loglevel )
@@ -54,15 +56,36 @@ def get_logger(app_name, app_version=None, app_environment=None, loglevel=DEFAUL
54
56
if channels .get ('webhook' ):
55
57
channel = channels ['webhook' ]
56
58
57
- if channel .get ('url' ):
58
- handler_webhook = JSONHTTPHandler (url = channel ['url' ])
59
- handler_webhook .setFormatter (formatter_json )
60
- if channel .get ('loglevel' ):
61
- # loglevel_webhook = getattr(logging, channel['loglevel'].upper(), None)
62
- handler_webhook .setLevel (channel ['loglevel' ])
63
- else :
64
- handler_webhook .setLevel (loglevel )
65
- logger .addHandler (handler_webhook )
59
+ if channel .get ('critical' ):
60
+ handler_webhook_critical = WebhookHandler (url = channel ['critical' ])
61
+ handler_webhook_critical .setFormatter (formatter_json )
62
+ handler_webhook_critical .setLevel ('CRITICAL' )
63
+ handler_webhook_critical .addFilter (SeverityFilter (logging .CRITICAL ))
64
+ logger .addHandler (handler_webhook_critical )
65
+ if channel .get ('error' ):
66
+ handler_webhook_error = WebhookHandler (url = channel ['error' ])
67
+ handler_webhook_error .setFormatter (formatter_json )
68
+ handler_webhook_error .setLevel ('ERROR' )
69
+ handler_webhook_error .addFilter (SeverityFilter (logging .ERROR ))
70
+ logger .addHandler (handler_webhook_error )
71
+ if channel .get ('warning' ):
72
+ handler_webhook_warning = WebhookHandler (url = channel ['warning' ])
73
+ handler_webhook_warning .setFormatter (formatter_json )
74
+ handler_webhook_warning .setLevel ('WARNING' )
75
+ handler_webhook_warning .addFilter (SeverityFilter (logging .WARNING ))
76
+ logger .addHandler (handler_webhook_warning )
77
+ if channel .get ('info' ):
78
+ handler_webhook_info = WebhookHandler (url = channel ['info' ])
79
+ handler_webhook_info .setFormatter (formatter_json )
80
+ handler_webhook_info .setLevel ('INFO' )
81
+ handler_webhook_info .addFilter (SeverityFilter (logging .INFO ))
82
+ logger .addHandler (handler_webhook_info )
83
+ if channel .get ('debug' ):
84
+ handler_webhook_debug = WebhookHandler (url = channel ['debug' ])
85
+ handler_webhook_debug .setFormatter (formatter_json )
86
+ handler_webhook_debug .setLevel ('DEBUG' )
87
+ handler_webhook_debug .addFilter (SeverityFilter (logging .DEBUG ))
88
+ logger .addHandler (handler_webhook_debug )
66
89
67
90
# Handler Telegram
68
91
if channels .get ('telegram' ):
@@ -112,11 +135,11 @@ def get_logger(app_name, app_version=None, app_environment=None, loglevel=DEFAUL
112
135
113
136
logger_adapter .logger .setLevel (loglevel )
114
137
115
- # DEBUG: -->
138
+ # # DEBUG: -->
116
139
# print('-----')
117
140
# for handler in logger.handlers:
118
141
# print(f'Handler: {handler.__class__.__name__} - {logging.getLevelName(handler.level)}')
119
142
# print('-----')
120
- # DEBUG: <--
143
+ # # DEBUG: <--
121
144
122
145
return logger_adapter
0 commit comments