@@ -49,15 +49,6 @@ def get_remote_verbose(self) -> int:
49
49
"""
50
50
return self .verbose
51
51
52
- def get_python_log_level (self ) -> int :
53
- """Get the Python logging level based on verbose setting."""
54
- level_map = {
55
- 0 : logging .ERROR ,
56
- 1 : logging .INFO ,
57
- 2 : logging .DEBUG ,
58
- }
59
- return level_map .get (self .verbose , logging .INFO )
60
-
61
52
def should_log (self , level : int ) -> bool :
62
53
"""Check if a message at the given level should be logged."""
63
54
# Always log errors (level 0)
@@ -214,24 +205,17 @@ def __init__(
214
205
config: Optional LogConfig instance. If provided, overrides other parameters.
215
206
"""
216
207
if config :
217
- self .verbose = config .verbose
218
- self .external_logger = config .external_logger
219
- self .use_rich = config .use_rich
220
208
self .config = config
221
209
else :
222
- self .verbose = verbose
223
- self .external_logger = external_logger
224
- self .use_rich = use_rich
225
210
self .config = LogConfig (
226
211
verbose = verbose ,
227
212
use_rich = use_rich ,
228
213
external_logger = external_logger ,
229
214
)
230
215
231
- self .console = get_console (self .use_rich )
216
+ self .console = get_console (self .config . use_rich )
232
217
233
218
# Map our verbosity levels to Python's logging levels
234
- # Now using only 3 levels to match the remote Fastify server
235
219
self .level_map = {
236
220
0 : logging .ERROR , # Critical errors only
237
221
1 : logging .INFO , # Standard information
@@ -242,11 +226,26 @@ def __init__(
242
226
self .level_style = {0 : "error" , 1 : "info" , 2 : "debug" }
243
227
244
228
# Update logger level based on verbosity
245
- self ._set_verbosity (self .verbose )
229
+ self ._set_verbosity (self .config .verbose )
230
+
231
+ @property
232
+ def verbose (self ):
233
+ """Get verbose level from config"""
234
+ return self .config .verbose
235
+
236
+ @property
237
+ def use_rich (self ):
238
+ """Get use_rich setting from config"""
239
+ return self .config .use_rich
240
+
241
+ @property
242
+ def external_logger (self ):
243
+ """Get external logger from config"""
244
+ return self .config .external_logger
246
245
247
246
def _set_verbosity (self , level : int ):
248
247
"""Set the logger verbosity level"""
249
- self .verbose = level
248
+ self .config . verbose = level
250
249
logger .setLevel (self .level_map .get (level , logging .INFO ))
251
250
252
251
def _format_json (self , data : dict ) -> str :
@@ -445,7 +444,7 @@ def log(
445
444
auxiliary: Optional dictionary of auxiliary data
446
445
"""
447
446
# Skip logging if below current verbosity level
448
- if level > self .verbose and level != 0 : # Always log errors (level 0)
447
+ if not self .config . should_log (level ):
449
448
return
450
449
451
450
# Call external logger if provided (handle async function)
@@ -650,20 +649,6 @@ def debug(
650
649
self .log (message , level = 2 , category = category , auxiliary = auxiliary )
651
650
652
651
653
- def get_logger (name : str , config : LogConfig ) -> StagehandLogger :
654
- """
655
- Factory function to get a configured logger instance for a module.
656
-
657
- Args:
658
- name: The name of the module requesting the logger
659
- config: LogConfig instance with logging configuration
660
-
661
- Returns:
662
- StagehandLogger: Configured logger instance
663
- """
664
- return StagehandLogger (config = config )
665
-
666
-
667
652
# Create a synchronous wrapper for the async default_log_handler
668
653
def sync_log_handler (log_data : dict [str , Any ]) -> None :
669
654
"""
0 commit comments