1
|
import logging
|
2
|
|
3
|
from quixote import get_request, get_session
|
4
|
|
5
|
from qommon.logger import BotFilter
|
6
|
|
7
|
from hosts import Host
|
8
|
|
9
|
class Formatter(logging.Formatter):
|
10
|
def format(self, record):
|
11
|
request = get_request()
|
12
|
|
13
|
record.address = request.get_environ('REMOTE_ADDR', '-')
|
14
|
record.path = request.get_path()
|
15
|
record.session_id = get_session().get_session_id() or '[nosession]'
|
16
|
|
17
|
user = None
|
18
|
host = Host.get_host_from_url()
|
19
|
if not host:
|
20
|
host = Host.select(lambda x: x.name == 'larpe')[0]
|
21
|
if host:
|
22
|
user = get_session().get_user(host.provider_id)
|
23
|
if not user:
|
24
|
user = get_session().get_user(host.saml2_provider_id)
|
25
|
|
26
|
if user:
|
27
|
user_id = user.id
|
28
|
else:
|
29
|
user_id = 'unlogged'
|
30
|
if BotFilter.is_bot():
|
31
|
user_id = 'bot'
|
32
|
record.user_id = user_id
|
33
|
|
34
|
return logging.Formatter.format(self, record)
|