Skip to content

Commit 6bdf9a3

Browse files
authored
Increase stderr logging (#263)
* Fix local appinsights logging * Increase stderr log level but not appinsights * Simplify logger name injection
1 parent 3cfd59a commit 6bdf9a3

File tree

6 files changed

+23
-21
lines changed

6 files changed

+23
-21
lines changed

docker-compose.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ x-shared-app-environment:
99
LOKOLE_EMAIL_SERVER_QUEUES_NAMESPACE: ${LOKOLE_EMAIL_SERVER_QUEUES_NAMESPACE}
1010
LOKOLE_LOG_LEVEL: ${LOKOLE_LOG_LEVEL}
1111
LOKOLE_EMAIL_SERVER_APPINSIGHTS_KEY: ${APPINSIGHTS_INSTRUMENTATIONKEY}
12-
LOKOLE_EMAIL_SERVER_APPINSIGHTS_HOST: http://appinsights
12+
LOKOLE_EMAIL_SERVER_APPINSIGHTS_HOST: http://appinsights:8000
1313

1414
LOKOLE_STORAGE_PROVIDER: AZURE_BLOBS
1515

@@ -112,10 +112,11 @@ services:
112112
depends_on:
113113
- postgres
114114
environment:
115+
PORT: "8000"
115116
DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
116117
APPINSIGHTS_INSTRUMENTATIONKEY: "${APPINSIGHTS_INSTRUMENTATIONKEY}"
117118
ports:
118-
- ${APPINSIGHTS_PORT}:80
119+
- ${APPINSIGHTS_PORT}:8000
119120

120121
postgres:
121122
image: postgres:11-alpine

helm/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ worker:
1111
queueWorkers: 1
1212

1313
logging:
14-
level: WARNING
14+
level: DEBUG
1515

1616
letsencrypt:
1717

opwen_email_server/config.py

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

3131
LOG_LEVEL = env('LOKOLE_LOG_LEVEL', 'INFO')
3232

33+
APPINSIGHTS_LOG_LEVEL = env('LOKOLE_EMAIL_SERVER_APPINSIGHTS_LOG_LEVEL', 'WARNING')
3334
APPINSIGHTS_KEY = env('LOKOLE_EMAIL_SERVER_APPINSIGHTS_KEY', '')
3435
APPINSIGHTS_HOST = env('LOKOLE_EMAIL_SERVER_APPINSIGHTS_HOST', '')
3536

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from typing_extensions import Final # noqa: F401
22

3-
STDERR = '%(asctime)s\t%(levelname)s\t%(message)s' # type: Final
4-
SEPARATOR = '|' # type: Final
3+
APPINSIGHTS = '%(name)s\t%(message)s' # type: Final
4+
STDERR = '%(asctime)s\t%(levelname)s\t%(name)s\t%(message)s' # type: Final

opwen_email_server/services/sendgrid.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def _run(self, client_id: str, domain: str) -> None:
191191
break
192192

193193
if retry > self._max_retries:
194-
self.log_debug('Too many attempts to set up mailbox for %s', domain)
194+
self.log_warning('Too many attempts to set up mailbox for %s', domain)
195195
create_response.raise_for_status()
196196

197197
sleep(self._retry_interval_seconds)

opwen_email_server/utils/log.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from logging import CRITICAL
22
from logging import DEBUG
33
from logging import INFO
4+
from logging import NOTSET
45
from logging import WARNING
56
from logging import Formatter
67
from logging import Handler
78
from logging import Logger
89
from logging import StreamHandler
9-
from logging import getLevelName
1010
from logging import getLogger
1111
from typing import Any
1212
from typing import Iterable
@@ -17,12 +17,14 @@
1717
from applicationinsights.channel import AsynchronousSender
1818
from applicationinsights.channel import NullSender
1919
from applicationinsights.channel import TelemetryChannel
20+
from applicationinsights.logging import LoggingHandler
2021
from cached_property import cached_property
2122

2223
from opwen_email_server.config import APPINSIGHTS_HOST
2324
from opwen_email_server.config import APPINSIGHTS_KEY
25+
from opwen_email_server.config import APPINSIGHTS_LOG_LEVEL
2426
from opwen_email_server.config import LOG_LEVEL
25-
from opwen_email_server.constants.logging import SEPARATOR
27+
from opwen_email_server.constants.logging import APPINSIGHTS
2628
from opwen_email_server.constants.logging import STDERR
2729
from opwen_email_server.utils.collections import append
2830
from opwen_email_server.utils.collections import singleton
@@ -45,16 +47,23 @@ def _default_log_handlers(self) -> Iterable[Handler]:
4547

4648
stderr = StreamHandler()
4749
stderr.setFormatter(Formatter(STDERR))
50+
stderr.setLevel(LOG_LEVEL)
4851
handlers.append(stderr)
4952

53+
appinsights = LoggingHandler(self._telemetry_key, telemetry_channel=self._telemetry_channel)
54+
appinsights.setFormatter(Formatter(APPINSIGHTS))
55+
appinsights.setLevel(APPINSIGHTS_LOG_LEVEL)
56+
handlers.append(appinsights)
57+
5058
return handlers
5159

5260
@cached_property
5361
def _logger(self) -> Logger:
54-
log = getLogger()
62+
log = getLogger(self.__class__.__name__)
63+
log.setLevel(NOTSET)
64+
log.propagate = False
5565
for handler in self._default_log_handlers:
5666
log.addHandler(handler)
57-
log.setLevel(LOG_LEVEL)
5867
return log
5968

6069
@cached_property
@@ -81,17 +90,8 @@ def log_exception(self, ex: Exception, message: str, *args: Any):
8190
self._telemetry_channel.flush()
8291

8392
def _log(self, level: int, log_message: str, log_args: Iterable[Any]):
84-
if not self._logger.isEnabledFor(level):
85-
return
86-
87-
message_parts = ['%s']
88-
args = [self.__class__.__name__]
89-
message_parts.append(log_message)
90-
args.extend(log_args)
91-
message = SEPARATOR.join(message_parts)
92-
self._logger.log(level, message, *args)
93-
self._telemetry_client.track_trace(message % tuple(args), severity=getLevelName(level))
93+
self._logger.log(level, log_message, *log_args)
9494

9595
def log_event(self, event_name: str, properties: Optional[dict] = None):
96-
self.log_info('%s%s%s', event_name, SEPARATOR, properties)
96+
self.log_info('%s|%s', event_name, properties)
9797
self._telemetry_client.track_event(event_name, properties)

0 commit comments

Comments
 (0)