Skip to content

Commit de7004b

Browse files
author
Gerit Wagner
committed
logger: pass path instead of review_manager
1 parent 3861c36 commit de7004b

2 files changed

Lines changed: 26 additions & 35 deletions

File tree

colrev/logger.py

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,18 @@
33
from __future__ import annotations
44

55
import logging
6-
import typing
6+
from pathlib import Path
77

88
import 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

4338
def 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

colrev/review_manager.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,13 @@ def get_loggers(self) -> typing.Tuple[logging.Logger, logging.Logger]:
130130
"""return loggers"""
131131
if self.verbose_mode:
132132
return colrev.logger.setup_report_logger(
133-
review_manager=self, level=logging.DEBUG
134-
), colrev.logger.setup_logger(review_manager=self, level=logging.DEBUG)
133+
report_path=self.paths.report, level=logging.DEBUG
134+
), colrev.logger.setup_logger(
135+
logger_path=self.paths.report, level=logging.DEBUG
136+
)
135137
return colrev.logger.setup_report_logger(
136-
review_manager=self, level=logging.INFO
137-
), colrev.logger.setup_logger(review_manager=self, level=logging.INFO)
138+
report_path=self.paths.report, level=logging.INFO
139+
), colrev.logger.setup_logger(logger_path=self.paths.report, level=logging.INFO)
138140

139141
def _check_update(self) -> None:
140142
# Once the following has run for all repositories,
@@ -179,7 +181,19 @@ def save_settings(self) -> None:
179181

180182
def reset_report_logger(self) -> None:
181183
"""Reset the report logger"""
182-
colrev.logger.reset_report_logger(review_manager=self)
184+
185+
# Stop and remove the report log file
186+
if self.report_logger.handlers:
187+
report_handler = self.report_logger.handlers[0]
188+
self.report_logger.removeHandler(report_handler)
189+
report_handler.close()
190+
191+
report_path = self.paths.report
192+
if report_path.is_file():
193+
with open(report_path, "r+", encoding="utf8") as file:
194+
file.truncate(0)
195+
file_handler = colrev.logger.reset_report_logger(report_path=self.paths.report)
196+
self.report_logger.addHandler(file_handler)
183197

184198
def check_repo(self) -> dict:
185199
"""Check the repository"""

0 commit comments

Comments
 (0)