diff --git a/great_ai/parameters/log_metric.py b/great_ai/parameters/log_metric.py index 75efa01..2b49879 100644 --- a/great_ai/parameters/log_metric.py +++ b/great_ai/parameters/log_metric.py @@ -5,7 +5,7 @@ from ..context import get_context from ..tracing import TracingContext -def log_metric(argument_name: str, value: Any) -> None: +def log_metric(argument_name: str, value: Any, disable_logging: bool=False) -> None: """Log a key (argument_name)-value pair that is persisted inside the trace. The name of the function from where this is called is also stored. @@ -13,12 +13,19 @@ def log_metric(argument_name: str, value: Any) -> None: Args: argument_name: The key for storing the value. value: Value to log. Must be JSON-serialisable. + disable_logging: If True, only persist in trace but don't show in console """ tracing_context = TracingContext.get_current_tracing_context() - caller = inspect.stack()[1].function - actual_name = f"metric:{caller}:{argument_name}" + try: + caller = inspect.stack()[1].function + actual_name = f"metric:{caller}:{argument_name}" + except: + # inspect might not work in notebooks + actual_name = f"metric:{argument_name}" + if tracing_context: tracing_context.log_value(name=actual_name, value=value) - get_context().logger.info(f"{actual_name}={value}") + if not disable_logging: + get_context().logger.info(f"{actual_name}={value}")