Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CumulusLogger: only create new handler if one is not present
This fixes the test added in the previous commit Before this change, multiple calls to `CumulusLogger(name)` would construct a `CumulusLogger` instance with the same underlying `Logger` instance, but each construction would also create and attach a new handler, resulting in duplicate messages, e.g.: ``` > python >>> from cumulus_logger import CumulusLogger >>> logger = CumulusLogger('test') >>> logger.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:18:09.315309", "level": "info"} >>> >>> logger2 = CumulusLogger('test') >>> logger2.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:18:16.845070", "level": "info"} {"message": "hello there", "timestamp": "2021-12-21T16:18:16.845070", "level": "info"} >>> >>> logger.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:18:18.165564", "level": "info"} {"message": "hello there", "timestamp": "2021-12-21T16:18:18.165564", "level": "info"} ``` See also the screenshots on ghrcdaac/dmrpp-file-generator-docker#25 With this change, a new handler is only constructed if the underlying `Logger` does not already have any handlers, preventing messages from being handled more than once: ``` > python >>> from cumulus_logger import CumulusLogger >>> logger = CumulusLogger('test') >>> logger.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:33:56.735453", "level": "info"} >>> >>> logger2 = CumulusLogger('test') >>> logger2.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:34:03.887972", "level": "info"} >>> >>> logger.info('hello there') {"message": "hello there", "timestamp": "2021-12-21T16:34:07.808415", "level": "info"} ```
- Loading branch information