Skip to content

Commit 978c911

Browse files
authored
Send logging records to Sumo. (#133)
* Added logging to Sumo. * Make flake8 and black happy (or at least happier). * Death to all fascist linters! --------- Co-authored-by: Raymond Wiker <rayw@equinor.com>
1 parent d419539 commit 978c911

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

src/sumo/wrapper/_logging.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import logging
2+
from datetime import datetime
3+
4+
5+
class LogHandlerSumo(logging.Handler):
6+
def __init__(self, sumoClient):
7+
logging.Handler.__init__(self)
8+
self._sumoClient = sumoClient
9+
return
10+
11+
def emit(self, record):
12+
dt = datetime.utcnow().replace(microsecond=0).isoformat() + "Z"
13+
json = {
14+
"severity": record.levelname,
15+
"message": record.getMessage(),
16+
"timestamp": dt,
17+
"source": record.name,
18+
"pathname": record.pathname,
19+
"funcname": record.funcName,
20+
"linenumber": record.lineno,
21+
}
22+
self._sumoClient.post("/message-log/new", json=json)
23+
return
24+
25+
pass

src/sumo/wrapper/sumo_client.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from ._request_error import raise_request_error_exception
99
from ._blob_client import BlobClient
1010
from ._sumo_aggregation_client import SumoAggregationClient
11+
from ._logging import LogHandlerSumo
1112

1213
logger = logging.getLogger("sumo.wrapper")
1314

@@ -378,3 +379,21 @@ def get_aggregate(self, json: dict):
378379
Sumo aggregate response object
379380
"""
380381
return self.agg_client.get_aggregate(json)
382+
383+
def getLogger(self, name):
384+
"""Gets a logger object that sends log objects into the message_log
385+
index for the Sumo instance.
386+
387+
Args:
388+
name: string naming the logger instance
389+
390+
Returns:
391+
logger instance
392+
393+
See Python documentation for logging.Logger for details.
394+
"""
395+
396+
logger = logging.getLogger(name)
397+
handler = LogHandlerSumo(self)
398+
logger.addHandler(handler)
399+
return logger

0 commit comments

Comments
 (0)