デコレーターを書いてみる
お世話になっております。
夜中に目が覚めたので、デコレーターを書いてみました。
# -*- coding: utf-8 -*- import logging import datetime def log(function): function_name = function.__name__ class_name = function.__class__.__name__ start_format = '{0} {1}.{2} start. args={3} kwargs={4}' end_format = '{0} {1}.{2} end. return={3}' def wrapper(*args, **kwargs): now = str(datetime.datetime.now()) logging.debug(start_format.format(now, class_name, function_name, str(args), str(kwargs))) try: result = function(*args, **kwargs) except Exception as ex: logging.error(str(ex)) raise ex now = str(datetime.datetime.now()) logging.debug(end_format.format(now, class_name, function_name, str(result))) return result return wrapper @log def main(): print('main') if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) main()
簡単です。
以上