@@ -442,6 +442,8 @@ def get_logger(
442442 show_progress : bool = True ,
443443 use_color : bool = True ,
444444 simple_format : bool = False ,
445+ file_log_level : str | int | None = None ,
446+ truncate_log : bool = True ,
445447) -> logging .Logger :
446448 # Configure Windows-safe logging early
447449 configure_windows_safe_logging ()
@@ -586,15 +588,26 @@ def _safe_log(level, msg, args, **kwargs):
586588 # # Determine log path/file name; create output_dir if necessary
587589 # now = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
588590
589- # Create JSONLines/JSONL file handler for logging to a file (log all five levels)
591+ # Determine file log level (default to INFO to avoid huge log files)
592+ final_file_log_level = (
593+ file_log_level if file_log_level is not None else logging .INFO
594+ )
595+
596+ # Create JSONLines/JSONL file handler for logging to a file
590597 if log_format in ["JSONL" , "BOTH" ]:
591598 jsonl_log_file = Path (output_dir ).joinpath (f"{ name } .log.jsonl" )
592599 jsonl_log_file .parent .mkdir (parents = True , exist_ok = True )
593- jsonl_log_file .touch (exist_ok = True )
600+ # Truncate the file if requested (default), otherwise append
601+ if truncate_log :
602+ jsonl_log_file .write_text ("" ) # Clear the file
603+ else :
604+ jsonl_log_file .touch (
605+ exist_ok = True
606+ ) # Create if doesn't exist, but don't truncate
594607
595608 jsonl_file_handler = logging .FileHandler (jsonl_log_file .as_posix ())
596609 logger .verbose ("Logging to JSONL file: %s" , jsonl_log_file .as_posix ())
597- jsonl_file_handler .setLevel (logging . DEBUG )
610+ jsonl_file_handler .setLevel (final_file_log_level )
598611 jsonl_file_handler .setFormatter (
599612 JsonFormatter (
600613 {
@@ -612,15 +625,21 @@ def _safe_log(level, msg, args, **kwargs):
612625 )
613626 )
614627 logger .addHandler (jsonl_file_handler )
615- # Create tabular file handler for logging to a file (log all five levels)
628+ # Create tabular file handler for logging to a file
616629 if log_format in ["TABULAR" , "BOTH" ]:
617630 tab_log_file = Path (output_dir ).joinpath (f"{ name } .log" )
618631 tab_log_file .parent .mkdir (parents = True , exist_ok = True )
619- tab_log_file .touch (exist_ok = True )
632+ # Truncate the file if requested (default), otherwise append
633+ if truncate_log :
634+ tab_log_file .write_text ("" ) # Clear the file
635+ else :
636+ tab_log_file .touch (
637+ exist_ok = True
638+ ) # Create if doesn't exist, but don't truncate
620639
621640 tab_file_handler = logging .FileHandler (tab_log_file .as_posix ())
622641 logger .verbose ("Logging to tabular file: %s" , tab_log_file .as_posix ())
623- tab_file_handler .setLevel (logging . DEBUG )
642+ tab_file_handler .setLevel (final_file_log_level )
624643 tab_file_handler .setFormatter (
625644 logging .Formatter (
626645 fmt = "%(asctime)s\t %(levelname)s\t %(filename)s:%(lineno)d\t %(message)s "
0 commit comments