Azure / azure-functions-python-worker

Python worker for Azure Functions.
http://aka.ms/azurefunctions
MIT License
335 stars 103 forks source link

[PERFORMANCE] Lazy formatting should be used for logging functions #1051

Closed tonybaloney closed 1 year ago

tonybaloney commented 2 years ago

When calling logger.info, debug, warning etc methods you should use lazy string formatting https://docs.python.org/3/howto/logging.html#optimization

This is because the strings will be formatted regardless of whether the logging message is captured. f-strings are evaluated at runtime, so it causes an unnecessary overhead

This can be caught use two pylint rules:

pylint --disable=all -e logging-format-interpolation,logging-fstring-interpolation azure_functions_worker
************* Module azure_functions_worker.dispatcher
azure_functions_worker/dispatcher.py:251:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:307:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:328:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:375:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:602:20: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:653:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/dispatcher.py:658:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.testutils
azure_functions_worker/testutils.py:260:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.extension
azure_functions_worker/extension.py:238:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/extension.py:245:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/extension.py:253:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.utils.dependency
azure_functions_worker/utils/dependency.py:96:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/utils/dependency.py:104:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/utils/dependency.py:146:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/utils/dependency.py:212:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/utils/dependency.py:215:28: W1202: Use lazy % or % formatting in logging functions (logging-format-interpolation)
azure_functions_worker/utils/dependency.py:216:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/utils/dependency.py:226:24: W1202: Use lazy % or % formatting in logging functions (logging-format-interpolation)
azure_functions_worker/utils/dependency.py:392:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.bindings.datumdef
azure_functions_worker/bindings/datumdef.py:126:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/datumdef.py:156:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/datumdef.py:166:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.bindings.shared_memory_data_transfer.file_accessor_unix
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:46:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:61:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:83:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:99:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:103:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:124:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:131:20: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:134:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:152:20: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:155:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:182:16: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py:186:8: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.bindings.shared_memory_data_transfer.shared_memory_map
azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_map.py:55:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.bindings.shared_memory_data_transfer.file_accessor_windows
azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_windows.py:36:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
************* Module azure_functions_worker.bindings.shared_memory_data_transfer.shared_memory_manager
azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_manager.py:95:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_manager.py:100:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_manager.py:130:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)
azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_manager.py:170:12: W1203: Use lazy % or % formatting in logging functions (logging-fstring-interpolation)

------------------------------------------------------------------
Your code has been rated at 9.87/10 (previous run: 9.99/10, -0.12)