dreamlessx commited on
Commit
cfc00ce
·
verified ·
1 Parent(s): a82aad5

Update landmarkdiff/log.py to v0.3.2

Browse files
Files changed (1) hide show
  1. landmarkdiff/log.py +17 -7
landmarkdiff/log.py CHANGED
@@ -26,6 +26,7 @@ def setup_logging(
26
  level: str | int = "INFO",
27
  fmt: str | None = None,
28
  stream: object = None,
 
29
  ) -> None:
30
  """Configure logging for the landmarkdiff package.
31
 
@@ -35,6 +36,7 @@ def setup_logging(
35
  level: Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL).
36
  fmt: Custom format string. None uses the default.
37
  stream: Output stream. None defaults to stderr.
 
38
  """
39
  global _CONFIGURED
40
 
@@ -45,14 +47,22 @@ def setup_logging(
45
  root_logger.setLevel(level)
46
 
47
  if not _CONFIGURED:
48
- handler = logging.StreamHandler(stream or sys.stderr)
49
- handler.setFormatter(
50
- logging.Formatter(
51
- fmt or LOG_FORMAT,
52
- datefmt=LOG_DATE_FORMAT,
53
- )
54
  )
55
- root_logger.addHandler(handler)
 
 
 
 
 
 
 
 
 
 
 
56
  # Prevent propagation to root logger to avoid duplicate messages
57
  root_logger.propagate = False
58
  _CONFIGURED = True
 
26
  level: str | int = "INFO",
27
  fmt: str | None = None,
28
  stream: object = None,
29
+ log_file: str | None = None,
30
  ) -> None:
31
  """Configure logging for the landmarkdiff package.
32
 
 
36
  level: Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL).
37
  fmt: Custom format string. None uses the default.
38
  stream: Output stream. None defaults to stderr.
39
+ log_file: Optional file path for logging to a file.
40
  """
41
  global _CONFIGURED
42
 
 
47
  root_logger.setLevel(level)
48
 
49
  if not _CONFIGURED:
50
+ formatter = logging.Formatter(
51
+ fmt or LOG_FORMAT,
52
+ datefmt=LOG_DATE_FORMAT,
 
 
 
53
  )
54
+
55
+ # Add stream handler
56
+ stream_handler = logging.StreamHandler(stream or sys.stderr)
57
+ stream_handler.setFormatter(formatter)
58
+ root_logger.addHandler(stream_handler)
59
+
60
+ # Add file handler if log_file is specified
61
+ if log_file:
62
+ file_handler = logging.FileHandler(log_file)
63
+ file_handler.setFormatter(formatter)
64
+ root_logger.addHandler(file_handler)
65
+
66
  # Prevent propagation to root logger to avoid duplicate messages
67
  root_logger.propagate = False
68
  _CONFIGURED = True