33from __future__ import annotations
44
55import logging
6- import typing
6+ from pathlib import Path
77
88import colrev .exceptions as colrev_exceptions
99
10- if typing .TYPE_CHECKING : # pragma: no cover
11- import colrev .review_manager
1210
13-
14- def setup_logger (
15- * , review_manager : colrev .review_manager .ReviewManager , level : int = logging .INFO
16- ) -> logging .Logger :
11+ def setup_logger (* , logger_path : Path , level : int = logging .INFO ) -> logging .Logger :
1712 """Setup the CoLRev logger"""
1813
1914 # for logger debugging:
2015 # from logging_tree import printout
2116 # printout()
22- logger = logging .getLogger (f"colrev{ str (review_manager . path ).replace ('/' , '_' )} " )
17+ logger = logging .getLogger (f"colrev{ str (logger_path ).replace ('/' , '_' )} " )
2318 logger .setLevel (level )
2419
2520 if logger .handlers :
@@ -41,13 +36,13 @@ def setup_logger(
4136
4237
4338def setup_report_logger (
44- * , review_manager : colrev . review_manager . ReviewManager , level : int = logging .INFO
39+ * , report_path : Path , level : int = logging .INFO
4540) -> logging .Logger :
4641 """Setup the report logger (used for git commit report)"""
4742
4843 try :
4944 report_logger = logging .getLogger (
50- f"colrev_report{ str (review_manager . path ).replace ('/' , '_' )} "
45+ f"colrev_report{ str (report_path . parent ).replace ('/' , '_' )} "
5146 )
5247
5348 if report_logger .handlers :
@@ -59,7 +54,6 @@ def setup_report_logger(
5954 fmt = "%(asctime)s [%(levelname)s] %(message)s" ,
6055 datefmt = "%Y-%m-%d %H:%M:%S" ,
6156 )
62- report_path = review_manager .paths .report
6357 report_file_handler = logging .FileHandler (report_path , mode = "a" )
6458 report_file_handler .setFormatter (formatter )
6559
@@ -76,30 +70,13 @@ def setup_report_logger(
7670 return report_logger
7771
7872
79- def stop_logger (* , review_manager : colrev .review_manager .ReviewManager ) -> None :
80- """Stop and remove the report log file"""
81-
82- if review_manager .report_logger .handlers :
83- report_handler = review_manager .report_logger .handlers [0 ]
84- review_manager .report_logger .removeHandler (report_handler )
85- report_handler .close ()
86-
87- report_path = review_manager .paths .report
88- if report_path .is_file ():
89- with open (report_path , "r+" , encoding = "utf8" ) as file :
90- file .truncate (0 )
91-
92-
93- def reset_report_logger (* , review_manager : colrev .review_manager .ReviewManager ) -> None :
73+ def reset_report_logger (* , report_path : Path ) -> logging .FileHandler :
9474 """Reset the report log file (used for the git commit report)"""
9575
96- stop_logger (review_manager = review_manager )
97-
98- report_path = review_manager .paths .report
9976 file_handler = logging .FileHandler (report_path , mode = "a" )
10077 file_handler .setLevel (logging .INFO )
10178 formatter = logging .Formatter (
10279 fmt = "%(asctime)s [%(levelname)s] %(message)s" , datefmt = "%Y-%m-%d %H:%M:%S"
10380 )
10481 file_handler .setFormatter (formatter )
105- review_manager . report_logger . addHandler ( file_handler )
82+ return file_handler
0 commit comments