mirror of
https://github.com/borgbackup/borg.git
synced 2025-02-24 07:01:59 +00:00
move logging setup to logger module
This commit is contained in:
parent
97189dd25b
commit
2d0dae4e8b
3 changed files with 50 additions and 23 deletions
|
@ -20,6 +20,7 @@
|
|||
from . import __version__
|
||||
from .archive import Archive, ArchiveChecker, CHUNKER_PARAMS
|
||||
from .compress import Compressor, COMPR_BUFFER
|
||||
from .logger import setup_logging
|
||||
from .upgrader import AtticRepositoryUpgrader
|
||||
from .repository import Repository
|
||||
from .cache import Cache
|
||||
|
@ -524,21 +525,6 @@ def do_help(self, parser, commands, args):
|
|||
parser.error('No help available on %s' % (args.topic,))
|
||||
return self.exit_code
|
||||
|
||||
def setup_logging(self, args):
|
||||
logging.raiseExceptions = False
|
||||
l = logging.getLogger('')
|
||||
sh = logging.StreamHandler(sys.stderr)
|
||||
# other formatters will probably want this, but let's remove
|
||||
# clutter on stderr
|
||||
#sh.setFormatter(logging.Formatter('%(name)s: %(message)s'))
|
||||
l.addHandler(sh)
|
||||
levels = { None: logging.WARNING,
|
||||
0: logging.WARNING,
|
||||
1: logging.INFO,
|
||||
2: logging.DEBUG }
|
||||
# default to WARNING, -v goes to INFO and -vv to DEBUG
|
||||
l.setLevel(levels[args.verbose])
|
||||
|
||||
def preprocess_args(self, args):
|
||||
deprecations = [
|
||||
('--hourly', '--keep-hourly', 'Warning: "--hourly" has been deprecated. Use "--keep-hourly" instead.'),
|
||||
|
@ -986,7 +972,7 @@ def run(self, args=None):
|
|||
help='additional help on TOPIC')
|
||||
|
||||
args = parser.parse_args(args or ['-h'])
|
||||
self.setup_logging(args)
|
||||
setup_logging(args)
|
||||
os.umask(args.umask)
|
||||
RemoteRepository.remote_path = args.remote_path
|
||||
RemoteRepository.umask = args.umask
|
||||
|
|
19
borg/logger.py
Normal file
19
borg/logger.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
import logging
|
||||
import sys
|
||||
|
||||
def setup_logging(args, stream=None):
|
||||
logging.raiseExceptions = False
|
||||
l = logging.getLogger('')
|
||||
sh = logging.StreamHandler(stream)
|
||||
# other formatters will probably want this, but let's remove
|
||||
# clutter on stderr
|
||||
#sh.setFormatter(logging.Formatter('%(name)s: %(message)s'))
|
||||
l.addHandler(sh)
|
||||
levels = { None: logging.WARNING,
|
||||
0: logging.WARNING,
|
||||
1: logging.INFO,
|
||||
2: logging.DEBUG }
|
||||
# default to WARNING, -v goes to INFO and -vv to DEBUG
|
||||
l.setLevel(levels[args.verbose])
|
||||
return sh,
|
||||
|
|
@ -3,16 +3,38 @@
|
|||
from StringIO import StringIO
|
||||
except ImportError:
|
||||
from io import StringIO
|
||||
import sys
|
||||
|
||||
from mock import Mock
|
||||
import pytest
|
||||
|
||||
def test_mod_logger():
|
||||
from ..logger import setup_logging
|
||||
logger = logging.getLogger(__name__)
|
||||
io = StringIO()
|
||||
|
||||
ch = logging.StreamHandler(io)
|
||||
ch.setFormatter(logging.Formatter('%(name)s: %(message)s'))
|
||||
logger.addHandler(ch)
|
||||
@pytest.fixture()
|
||||
def io_logger():
|
||||
io = StringIO()
|
||||
args = Mock()
|
||||
args.verbose = 2
|
||||
assert args.verbose == 2
|
||||
handler, = setup_logging(args, io)
|
||||
handler.setFormatter(logging.Formatter('%(name)s: %(message)s'))
|
||||
logger.setLevel(logging.DEBUG)
|
||||
return io
|
||||
|
||||
def test_setup_logging(io_logger):
|
||||
logger.info('hello world')
|
||||
assert io.getvalue() == "borg.testsuite.logger: hello world\n"
|
||||
assert io_logger.getvalue() == "borg.testsuite.logger: hello world\n"
|
||||
|
||||
def test_multiple_loggers(io_logger):
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.info('hello world 1')
|
||||
assert io_logger.getvalue() == "borg.testsuite.logger: hello world 1\n"
|
||||
logger = logging.getLogger('borg.testsuite.logger')
|
||||
logger.info('hello world 2')
|
||||
assert io_logger.getvalue() == "borg.testsuite.logger: hello world 1\nborg.testsuite.logger: hello world 2\n"
|
||||
io_logger.truncate(0)
|
||||
io_logger.seek(0)
|
||||
logger = logging.getLogger('borg.testsuite.logger')
|
||||
logger.info('hello world 2')
|
||||
assert io_logger.getvalue() == "borg.testsuite.logger: hello world 2\n"
|
||||
|
|
Loading…
Reference in a new issue