def test_config(self): """ Check configuration of logger """ # null handler logger = getLogger(__name__) compare([ C('logging.NullHandler') ], logger.handlers) # stdout handler logger = getLogger(__name__, stdout={'level': logging.INFO}) compare([ C('logging.StreamHandler', level=logging.INFO, strict=False) ], logger.handlers)
def test_logger(self, lc): """ Stream logger """ logger = getLogger(__name__, stdout={'level': logging.INFO}) logger.info('test message') vals = [v for v in lc.actual()][0] self.assertEqual(vals[0], __name__) self.assertEqual(vals[1], 'INFO') d = literal_eval(vals[2]) self.assertEqual(d['message'], 'test message')
def test_logger_json(self, lc): """ Stream logger with JSON output """ logger = getLogger(__name__, stdout={'level': logging.INFO}) logger = logging.LoggerAdapter(logger, {'collectionName': 'test_collection'}) logger.info({'key1': 'val1', 'key2': 'val2'}) vals = [v for v in lc.actual()][0] self.assertEqual(vals[0], __name__) self.assertEqual(vals[1], 'INFO') d = literal_eval(vals[2]) self.assertTrue('collectionName' in d.keys()) self.assertTrue('timestamp' in d.keys()) self.assertEqual(d['message'], '') self.assertEqual(d['key1'], 'val1')
import os import json import boto3 import traceback from botocore.client import Config from botocore.vendored.requests.exceptions import ReadTimeout from cumulus_process.loggers import getLogger logger = getLogger(__name__) """ cls is the Process subclass for a specific data source, such as MODIS, ASTER, etc. """ SFN_PAYLOAD_LIMIT = 32768 def activity(handler, arn=os.getenv('ACTIVITY_ARN')): """ An activity service for use with AWS Step Functions """ sfn = boto3.client('stepfunctions', config=Config(read_timeout=70)) while True: get_and_run_task(handler, sfn, arn) def get_and_run_task(handler, sfn, arn): """ Get and run a single task as part of an activity """ logger.info('query for task') try: task = sfn.get_activity_task(activityArn=arn, workerName=__name__) except ReadTimeout: logger.warning('Activity read timed out. Trying again.') return