Fix ref-err on `logger` input to `get_console_log()`
Particularly on a get-attr of `StackLevelAdapter.handlers` which, when a `logger: StackLevelAdapter` is passed, we need to *not call* our own `get_logger()` and just set is as the `log`. Fix the typing to match.repl_fixture
							parent
							
								
									69984c44ef
								
							
						
					
					
						commit
						faa681da21
					
				| 
						 | 
					@ -270,7 +270,9 @@ def get_logger(
 | 
				
			||||||
    subsys_spec: str|None = None,
 | 
					    subsys_spec: str|None = None,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
) -> StackLevelAdapter:
 | 
					) -> StackLevelAdapter:
 | 
				
			||||||
    '''Return the package log or a sub-logger for ``name`` if provided.
 | 
					    '''
 | 
				
			||||||
 | 
					    Return the `tractor`-library root logger or a sub-logger for
 | 
				
			||||||
 | 
					    `name` if provided.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
    log: Logger
 | 
					    log: Logger
 | 
				
			||||||
| 
						 | 
					@ -282,7 +284,7 @@ def get_logger(
 | 
				
			||||||
        name != _proj_name
 | 
					        name != _proj_name
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # NOTE: for handling for modules that use ``get_logger(__name__)``
 | 
					        # NOTE: for handling for modules that use `get_logger(__name__)`
 | 
				
			||||||
        # we make the following stylistic choice:
 | 
					        # we make the following stylistic choice:
 | 
				
			||||||
        # - always avoid duplicate project-package token
 | 
					        # - always avoid duplicate project-package token
 | 
				
			||||||
        #   in msg output: i.e. tractor.tractor.ipc._chan.py in header
 | 
					        #   in msg output: i.e. tractor.tractor.ipc._chan.py in header
 | 
				
			||||||
| 
						 | 
					@ -331,7 +333,7 @@ def get_logger(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_console_log(
 | 
					def get_console_log(
 | 
				
			||||||
    level: str|None = None,
 | 
					    level: str|None = None,
 | 
				
			||||||
    logger: Logger|None = None,
 | 
					    logger: Logger|StackLevelAdapter|None = None,
 | 
				
			||||||
    **kwargs,
 | 
					    **kwargs,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
) -> LoggerAdapter:
 | 
					) -> LoggerAdapter:
 | 
				
			||||||
| 
						 | 
					@ -344,12 +346,23 @@ def get_console_log(
 | 
				
			||||||
    Yeah yeah, i know we can use `logging.config.dictConfig()`. You do it.
 | 
					    Yeah yeah, i know we can use `logging.config.dictConfig()`. You do it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
    log = get_logger(
 | 
					    # get/create a stack-aware-adapter
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					        logger
 | 
				
			||||||
 | 
					        and
 | 
				
			||||||
 | 
					        isinstance(logger, StackLevelAdapter)
 | 
				
			||||||
 | 
					    ):
 | 
				
			||||||
 | 
					        # XXX, for ex. when passed in by a caller wrapping some
 | 
				
			||||||
 | 
					        # other lib's logger instance with our level-adapter.
 | 
				
			||||||
 | 
					        log = logger
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        log: StackLevelAdapter = get_logger(
 | 
				
			||||||
            logger=logger,
 | 
					            logger=logger,
 | 
				
			||||||
            **kwargs
 | 
					            **kwargs
 | 
				
			||||||
    )  # set a root logger
 | 
					        )
 | 
				
			||||||
    logger: Logger = log.logger
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    logger: Logger|StackLevelAdapter = log.logger
 | 
				
			||||||
    if not level:
 | 
					    if not level:
 | 
				
			||||||
        return log
 | 
					        return log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -367,10 +380,7 @@ def get_console_log(
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        fmt = LOG_FORMAT
 | 
					        fmt: str = LOG_FORMAT  # always apply our format?
 | 
				
			||||||
        # if logger:
 | 
					 | 
				
			||||||
        #     fmt = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        handler = StreamHandler()
 | 
					        handler = StreamHandler()
 | 
				
			||||||
        formatter = colorlog.ColoredFormatter(
 | 
					        formatter = colorlog.ColoredFormatter(
 | 
				
			||||||
            fmt=fmt,
 | 
					            fmt=fmt,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue