| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 95f2bb7 commit 871d4da
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -24,13 +24,17 @@ | |||
| 24 | 24 | ||
| 25 | 25 | DEFAULT_LOGGER_NAME = "python" | |
| 26 | 26 | ||
| 27 | - """Exclude internal logs from propagating through handlers""" | ||
| 27 | + """Defaults for filtering out noisy loggers""" | ||
| 28 | 28 | EXCLUDED_LOGGER_DEFAULTS = ( | |
| 29 | + "google.api_core.bidi", | ||
| 30 | + "werkzeug", | ||
| 31 | + ) | ||
| 32 | + | ||
| 33 | + """Exclude internal logs from propagating through handlers""" | ||
| 34 | + _INTERNAL_LOGGERS = ( | ||
| 29 | 35 | "google.cloud", | |
| 30 | 36 | "google.auth", | |
| 31 | 37 | "google_auth_httplib2", | |
| 32 | - "google.api_core.bidi", | ||
| 33 | - "werkzeug", | ||
| 34 | 38 | ) | |
| 35 | 39 | ||
| 36 | 40 | """These environments require us to remove extra handlers on setup""" | |
@@ -291,7 +295,7 @@ def setup_logging( | |||
| 291 | 295 | log_level (Optional[int]): Python logging log level. Defaults to | |
| 292 | 296 | :const:`logging.INFO`. | |
| 293 | 297 | """ | |
| 294 | - all_excluded_loggers = set(excluded_loggers + EXCLUDED_LOGGER_DEFAULTS) | ||
| 298 | + all_excluded_loggers = set(excluded_loggers + _INTERNAL_LOGGERS) | ||
| 295 | 299 | logger = logging.getLogger() | |
| 296 | 300 | ||
| 297 | 301 | # remove built-in handlers on App Engine or Cloud Functions environments | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -18,6 +18,11 @@ | |||
| 18 | 18 | import mock | |
| 19 | 19 | import json | |
| 20 | 20 | ||
| 21 | + from google.cloud.logging_v2.handlers.handlers import ( | ||
| 22 | + _INTERNAL_LOGGERS, | ||
| 23 | + EXCLUDED_LOGGER_DEFAULTS, | ||
| 24 | + ) | ||
| 25 | + | ||
| 21 | 26 | from google.cloud.logging_v2.handlers._monitored_resources import ( | |
| 22 | 27 | _FUNCTION_ENV_VARS, | |
| 23 | 28 | _GAE_ENV_VARS, | |
@@ -867,7 +872,7 @@ class TestSetupLogging(unittest.TestCase): | |||
| 867 | 872 | def _call_fut(self, handler, excludes=None): | |
| 868 | 873 | from google.cloud.logging.handlers import setup_logging | |
| 869 | 874 | ||
| 870 | - if excludes: | ||
| 875 | + if excludes is not None: | ||
| 871 | 876 | return setup_logging(handler, excluded_loggers=excludes) | |
| 872 | 877 | else: | |
| 873 | 878 | return setup_logging(handler) | |
@@ -893,6 +898,24 @@ def test_setup_logging_excludes(self): | |||
| 893 | 898 | self.assertNotIn(handler, excluded_logger.handlers) | |
| 894 | 899 | self.assertFalse(excluded_logger.propagate) | |
| 895 | 900 | ||
| 901 | + def test_setup_logging_internal_loggers_no_excludes(self): | ||
| 902 | + handler = _Handler(logging.INFO) | ||
| 903 | + self._call_fut(handler, excludes=()) | ||
| 904 | + | ||
| 905 | + # Test that excluded logger defaults can be included, but internal | ||
| 906 | + # loggers can't be. | ||
| 907 | + for logger_name in _INTERNAL_LOGGERS: | ||
| 908 | + logger = logging.getLogger(logger_name) | ||
| 909 | + self.assertNotIn(handler, logger.handlers) | ||
| 910 | + self.assertFalse(logger.propagate) | ||
| 911 | + | ||
| 912 | + logger = logging.getLogger("logging") | ||
| 913 | + self.assertTrue(logger.propagate) | ||
| 914 | + | ||
| 915 | + for logger_name in EXCLUDED_LOGGER_DEFAULTS: | ||
| 916 | + logger = logging.getLogger(logger_name) | ||
| 917 | + self.assertTrue(logger.propagate) | ||
| 918 | + | ||
| 896 | 919 | @patch.dict("os.environ", {envar: "1" for envar in _FUNCTION_ENV_VARS}) | |
| 897 | 920 | def test_remove_handlers_gcf(self): | |
| 898 | 921 | logger = logging.getLogger() | |
@@ -939,10 +962,18 @@ def test_keep_handlers_others(self): | |||
| 939 | 962 | def setUp(self): | |
| 940 | 963 | self._handlers_cache = logging.getLogger().handlers[:] | |
| 941 | 964 | ||
| 965 | + # reset the logging manager every time so that we're not reusing loggers | ||
| 966 | + # across different test cases. | ||
| 967 | + self._logger_manager = logging.Logger.manager | ||
| 968 | + logging.Logger.manager = logging.Manager(logging.Logger.root) | ||
| 969 | + | ||
| 942 | 970 | def tearDown(self): | |
| 943 | 971 | # cleanup handlers | |
| 944 | 972 | logging.getLogger().handlers = self._handlers_cache[:] | |
| 945 | 973 | ||
| 974 | + # restore the old logging manager. | ||
| 975 | + logging.Logger.manager = self._logger_manager | ||
| 976 | + | ||
| 946 | 977 | ||
| 947 | 978 | class _Handler(object): | |
| 948 | 979 | def __init__(self, level): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -847,9 +847,6 @@ def test_setup_logging(self): | |||
| 847 | 847 | ||
| 848 | 848 | expected_kwargs = { | |
| 849 | 849 | "excluded_loggers": ( | |
| 850 | - "google.cloud", | ||
| 851 | - "google.auth", | ||
| 852 | - "google_auth_httplib2", | ||
| 853 | 850 | "google.api_core.bidi", | |
| 854 | 851 | "werkzeug", | |
| 855 | 852 | ), | |
@@ -890,9 +887,6 @@ def test_setup_logging_w_extra_kwargs(self): | |||
| 890 | 887 | ||
| 891 | 888 | expected_kwargs = { | |
| 892 | 889 | "excluded_loggers": ( | |
| 893 | - "google.cloud", | ||
| 894 | - "google.auth", | ||
| 895 | - "google_auth_httplib2", | ||
| 896 | 890 | "google.api_core.bidi", | |
| 897 | 891 | "werkzeug", | |
| 898 | 892 | ), | |
| Back | FazBrowse Home | New Git URL |
0 commit comments