Browse Source

Reopen the file given by "--log-file" flag if an external program rotates the log file while borgmatic is running.

tags/1.4.10
Dan Helfman 1 year ago
parent
commit
0a9f4e8708
3 changed files with 9 additions and 8 deletions
  1. +2
    -1
      NEWS
  2. +1
    -1
      borgmatic/logger.py
  3. +6
    -6
      tests/unit/test_logger.py

+ 2
- 1
NEWS View File

@@ -1,5 +1,6 @@
1.4.10.dev0
*
* Reopen the file given by "--log-file" flag if an external program rotates the log file while
borgmatic is running.

1.4.9
* #228: Database dump hooks for MySQL/MariaDB, so you can easily dump your databases before backups


+ 1
- 1
borgmatic/logger.py View File

@@ -104,7 +104,7 @@ def configure_logging(
syslog_handler.setLevel(syslog_log_level)
handlers = (console_handler, syslog_handler)
elif log_file:
file_handler = logging.FileHandler(log_file)
file_handler = logging.handlers.WatchedFileHandler(log_file)
file_handler.setFormatter(logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s'))
file_handler.setLevel(log_file_log_level)
handlers = (console_handler, file_handler)


+ 6
- 6
tests/unit/test_logger.py View File

@@ -203,10 +203,10 @@ def test_configure_logging_to_logfile_instead_of_syslog():
)
flexmock(module.os.path).should_receive('exists').with_args('/dev/log').and_return(True)
flexmock(module.logging.handlers).should_receive('SysLogHandler').never()
file_handler = logging.FileHandler('/tmp/logfile')
flexmock(module.logging).should_receive('FileHandler').with_args('/tmp/logfile').and_return(
file_handler
).once()
file_handler = logging.handlers.WatchedFileHandler('/tmp/logfile')
flexmock(module.logging.handlers).should_receive('WatchedFileHandler').with_args(
'/tmp/logfile'
).and_return(file_handler).once()

module.configure_logging(
console_log_level=logging.INFO, log_file_log_level=logging.DEBUG, log_file='/tmp/logfile'
@@ -214,12 +214,12 @@ def test_configure_logging_to_logfile_instead_of_syslog():


def test_configure_logging_skips_logfile_if_argument_is_none():
# No FileHandler added if argument --log-file is None
# No WatchedFileHandler added if argument --log-file is None
flexmock(module).should_receive('interactive_console').and_return(False)
flexmock(module.logging).should_receive('basicConfig').with_args(
level=logging.INFO, handlers=tuple
)
flexmock(module.os.path).should_receive('exists').and_return(False)
flexmock(module.logging).should_receive('FileHandler').never()
flexmock(module.logging.handlers).should_receive('WatchedFileHandler').never()

module.configure_logging(console_log_level=logging.INFO, log_file=None)

Loading…
Cancel
Save