Repository: datastax/astrapy (language: python)

Issue:
check TRACE logging
since this is what I see when enabling level 5 (the custom-defined "trace"):

![trace_logging](https://github.com/datastax/astrapy/assets/14221764/e0880279-9f1e-443d-ab27-7772cdee085d)




Discussion / hints:

Fix patch:
diff --git a/astrapy/utils.py b/astrapy/utils.py
index b3fba700..744089a2 100644
--- a/astrapy/utils.py
+++ b/astrapy/utils.py
@@ -14,7 +14,7 @@
 class CustomLogger(logging.Logger):
     def trace(self, msg: str, *args: Any, **kwargs: Any) -> None:
         if self.isEnabledFor(5):
-            self._log(5, msg, *args, **kwargs)
+            self._log(5, msg, args, **kwargs)
 
 
 # Add a new TRACE logging level
@@ -23,10 +23,6 @@ def trace(self, msg: str, *args: Any, **kwargs: Any) -> None:
 # Tell the logging system to use your custom logger
 logging.setLoggerClass(CustomLogger)
 
-# Now you can use the trace method on your logger instances
-logger = logging.getLogger(__name__)
-logger.trace("This is a trace message")  # type: ignore
-
 
 logger = logging.getLogger(__name__)
 


Test patch:
diff --git a/tests/astrapy/test_logging.py b/tests/astrapy/test_logging.py
new file mode 100644
index 00000000..b59ba2d3
--- /dev/null
+++ b/tests/astrapy/test_logging.py
@@ -0,0 +1,48 @@
+# Copyright DataStax, Inc.
+#
+# 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.
+
+"""
+Tests for the "TRACE" custom logging level
+"""
+
+import logging
+
+import pytest
+
+from ..conftest import AstraDBCredentials
+from astrapy.db import AstraDB
+
+
+logger = logging.getLogger(__name__)
+
+
+@pytest.mark.describe("should obey the 'TRACE' logging level when requested")
+def test_trace_logging_trace(
+    caplog: pytest.LogCaptureFixture,
+    astra_db_credentials_kwargs: AstraDBCredentials,
+) -> None:
+    astra_db = AstraDB(**astra_db_credentials_kwargs)
+    with caplog.at_level(10):
+        astra_db.get_collections()
+        for record in caplog.records:
+            assert record.levelname != "TRACE"
+    caplog.clear()
+    # TRACE is level 5:
+    with caplog.at_level(5):
+        astra_db.get_collections()
+        trace_records = [
+            record for record in caplog.records if record.levelname == "TRACE"
+        ]
+        assert len(trace_records) == 1
+        assert "findCollections" in trace_records[0].msg