Skip to content

Commit 11074ad

Browse files
committed
more logging improvements
1 parent e8edfc5 commit 11074ad

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

lambda_gateway/__init__.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import logging
2+
3+
4+
def set_stream_logger(name, level=logging.DEBUG, format_string=None):
5+
"""
6+
Adapted from boto3.set_stream_logger()
7+
"""
8+
if format_string is None:
9+
format_string = \
10+
'%(addr)s - - [%(asctime)s] %(levelname)s - %(message)s'
11+
12+
logger = logging.getLogger(name)
13+
handler = logging.StreamHandler()
14+
formatter = logging.Formatter(format_string, '%-d/%b/%Y %H:%M:%S')
15+
adapter = logging.LoggerAdapter(logger, dict(addr='::1'))
16+
logger.setLevel(level)
17+
handler.setLevel(level)
18+
handler.setFormatter(formatter)
19+
logger.addHandler(handler)
20+
return adapter
21+
22+
23+
logger = set_stream_logger(__name__)

lambda_gateway/event_proxy.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import asyncio
22
import json
33
import os
4-
import sys
54
from importlib.util import (spec_from_file_location, module_from_spec)
65

7-
from lambda_gateway import lambda_context
6+
from lambda_gateway import (lambda_context, logger)
87

98

109
class EventProxy:
@@ -35,6 +34,7 @@ def get_handler(self):
3534

3635
def invoke(self, event):
3736
with lambda_context.start(self.timeout) as context:
37+
logger.info('Invoking "%s"', self.handler)
3838
return asyncio.run(self.invoke_async_with_timeout(event, context))
3939

4040
async def invoke_async(self, event, context=None):
@@ -49,8 +49,8 @@ async def invoke_async(self, event, context=None):
4949

5050
# Reject request if not starting at base path
5151
if not path.startswith(self.base_path):
52-
err = f'Rejected {path} -- Base path is {self.base_path}'
53-
sys.stderr.write(f'{err}\n')
52+
err = f'Rejected {path} :: Base path is {self.base_path}'
53+
logger.error(err)
5454
return self.jsonify(httpMethod, 403, message='Forbidden')
5555

5656
# Get & invoke Lambda handler
@@ -59,7 +59,7 @@ async def invoke_async(self, event, context=None):
5959
loop = asyncio.get_running_loop()
6060
return await loop.run_in_executor(None, handler, event, context)
6161
except Exception as err:
62-
sys.stderr.write(f'{err}\n')
62+
logger.error(err)
6363
message = 'Internal server error'
6464
return self.jsonify(httpMethod, 502, message=message)
6565

0 commit comments

Comments
 (0)