11import json
2- import logging
32from collections .abc import Callable
43from typing import Any , TypeVar
54
@@ -25,7 +24,7 @@ def __str__(self) -> str:
2524
2625 @staticmethod
2726 def default_renderer (msg : str , kwargs : dict [str , Any ]) -> str :
28- return f"{ msg } >>> { json .dumps (kwargs )} "
27+ return f"{ msg } >>> { json .dumps (kwargs , default = str )} "
2928
3029 @classmethod
3130 def set_renderer (cls : type [T ], renderer_func : RendererType ) -> None :
@@ -34,38 +33,3 @@ def set_renderer(cls: type[T], renderer_func: RendererType) -> None:
3433
3534def set_renderer (renderer_func : RendererType ) -> None :
3635 StructuredMessage .set_renderer (renderer_func )
37-
38-
39- def get_logger (name : str = "" ) -> logging .Logger :
40- """Get a logger instance with the pgai namespace.
41-
42- Args:
43- name: The logger name, which will be prefixed with 'pgai.'
44-
45- Returns:
46- A Logger instance with the appropriate namespace
47- """
48- if name :
49- logger_name : str = f"pgai.{ name } "
50- else :
51- logger_name : str = "pgai"
52-
53- return logging .getLogger (logger_name )
54-
55-
56- def set_level (level : int | str ) -> None :
57- """Set the log level for all pgai loggers.
58-
59- This does not affect the root logger or any other loggers outside
60- the pgai namespace.
61-
62- Args:
63- level: The logging level (e.g., logging.INFO, logging.DEBUG)
64- or a string level name ('INFO', 'DEBUG', etc.)
65- """
66- if isinstance (level , str ):
67- numeric_level : int = getattr (logging , level .upper (), logging .INFO )
68- else :
69- numeric_level = level
70-
71- logging .getLogger ("pgai" ).setLevel (numeric_level )
0 commit comments