X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Fosm-temporal-ui%2Fsrc%2Flog.py;fp=installers%2Fcharm%2Fosm-temporal-ui%2Fsrc%2Flog.py;h=86e32ed3d7e29d2f0b52f41e07590385db0db5a0;hb=7efd5d3aa0abe968d61101c1207c2fe272c3b2b1;hp=0000000000000000000000000000000000000000;hpb=a86e06186fc2688599647603068cecbee712c800;p=osm%2Fdevops.git diff --git a/installers/charm/osm-temporal-ui/src/log.py b/installers/charm/osm-temporal-ui/src/log.py new file mode 100644 index 00000000..86e32ed3 --- /dev/null +++ b/installers/charm/osm-temporal-ui/src/log.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# Copyright 2022 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact: legal@canonical.com +# +# To get in touch with the maintainers, please contact: +# osm-charmers@lists.launchpad.net +# +# +# Learn more at: https://juju.is/docs/sdk + +"""Define logging helpers.""" + +import functools + + +def log_event_handler(logger): + """Log with the provided logger when a event handler method is executed.""" + + def decorator(method): + @functools.wraps(method) + def decorated(self, event): + logger.info(f"* running {self.__class__.__name__}.{method.__name__}") + try: + return method(self, event) + finally: + logger.info(f"* completed {self.__class__.__name__}.{method.__name__}") + + return decorated + + return decorator