mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 16:42:42 +01:00
Offer verbose and very verbose modes
'verbose' is now an int and not a boolean. '-v' is level 1, '-vv' level 2. In the configuration it can be set with 'verbose: 1' or 'verbose: 2'. Improve #1244: auditing current log levels of plugins remains.
This commit is contained in:
parent
327b62b610
commit
f1e13cf886
6 changed files with 34 additions and 19 deletions
|
|
@ -43,7 +43,7 @@ pluginpath: []
|
|||
threaded: yes
|
||||
timeout: 5.0
|
||||
per_disc_numbering: no
|
||||
verbose: no
|
||||
verbose: 0
|
||||
terminal_encoding: utf8
|
||||
original_date: no
|
||||
id3v23: no
|
||||
|
|
|
|||
|
|
@ -112,9 +112,8 @@ class BeetsPlugin(object):
|
|||
def wrapper(*args, **kwargs):
|
||||
assert self._log.level == logging.NOTSET
|
||||
|
||||
log_level = base_log_level
|
||||
if beets.config['verbose'].get(bool):
|
||||
log_level -= 10
|
||||
verbosity = beets.config['verbose'].get(int)
|
||||
log_level = max(logging.DEBUG, base_log_level - 10 * verbosity)
|
||||
self._log.setLevel(log_level)
|
||||
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -858,7 +858,7 @@ def _configure(options):
|
|||
config.set_args(options)
|
||||
|
||||
# Configure the logger.
|
||||
if config['verbose'].get(bool):
|
||||
if config['verbose'].get(int):
|
||||
log.setLevel(logging.DEBUG)
|
||||
else:
|
||||
log.setLevel(logging.INFO)
|
||||
|
|
@ -917,7 +917,7 @@ def _raw_main(args, lib=None):
|
|||
help='library database file to use')
|
||||
parser.add_option('-d', '--directory', dest='directory',
|
||||
help="destination music directory")
|
||||
parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
|
||||
parser.add_option('-v', '--verbose', dest='verbose', action='count',
|
||||
help='print debugging information')
|
||||
parser.add_option('-c', '--config', dest='config',
|
||||
help='path to configuration file')
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ class TestHelper(object):
|
|||
self.config.read()
|
||||
|
||||
self.config['plugins'] = []
|
||||
self.config['verbose'] = True
|
||||
self.config['verbose'] = 1
|
||||
self.config['ui']['color'] = False
|
||||
self.config['threaded'] = False
|
||||
|
||||
|
|
|
|||
|
|
@ -78,14 +78,15 @@ class LoggingLevelTest(unittest.TestCase, helper.TestHelper):
|
|||
sys.modules.pop('beetsplug.dummy')
|
||||
|
||||
def test_command_logging(self):
|
||||
self.config['verbose'] = False
|
||||
self.config['verbose'] = 0
|
||||
with helper.capture_log() as logs:
|
||||
self.run_command('dummy')
|
||||
self.assertIn('dummy: warning cmd', logs)
|
||||
self.assertIn('dummy: info cmd', logs)
|
||||
self.assertNotIn('dummy: debug cmd', logs)
|
||||
|
||||
self.config['verbose'] = True
|
||||
for level in (1, 2):
|
||||
self.config['verbose'] = level
|
||||
with helper.capture_log() as logs:
|
||||
self.run_command('dummy')
|
||||
self.assertIn('dummy: warning cmd', logs)
|
||||
|
|
@ -93,22 +94,29 @@ class LoggingLevelTest(unittest.TestCase, helper.TestHelper):
|
|||
self.assertIn('dummy: debug cmd', logs)
|
||||
|
||||
def test_listener_logging(self):
|
||||
self.config['verbose'] = False
|
||||
self.config['verbose'] = 0
|
||||
with helper.capture_log() as logs:
|
||||
plugins.send('dummy_event')
|
||||
self.assertIn('dummy: warning listener', logs)
|
||||
self.assertNotIn('dummy: info listener', logs)
|
||||
self.assertNotIn('dummy: debug listener', logs)
|
||||
|
||||
self.config['verbose'] = True
|
||||
self.config['verbose'] = 1
|
||||
with helper.capture_log() as logs:
|
||||
plugins.send('dummy_event')
|
||||
self.assertIn('dummy: warning listener', logs)
|
||||
self.assertIn('dummy: info listener', logs)
|
||||
self.assertNotIn('dummy: debug listener', logs)
|
||||
|
||||
self.config['verbose'] = 2
|
||||
with helper.capture_log() as logs:
|
||||
plugins.send('dummy_event')
|
||||
self.assertIn('dummy: warning listener', logs)
|
||||
self.assertIn('dummy: info listener', logs)
|
||||
self.assertIn('dummy: debug listener', logs)
|
||||
|
||||
def test_import_stage_logging(self):
|
||||
self.config['verbose'] = False
|
||||
self.config['verbose'] = 0
|
||||
with helper.capture_log() as logs:
|
||||
importer = self.create_importer()
|
||||
importer.run()
|
||||
|
|
@ -116,7 +124,7 @@ class LoggingLevelTest(unittest.TestCase, helper.TestHelper):
|
|||
self.assertNotIn('dummy: info import_stage', logs)
|
||||
self.assertNotIn('dummy: debug import_stage', logs)
|
||||
|
||||
self.config['verbose'] = True
|
||||
self.config['verbose'] = 1
|
||||
with helper.capture_log() as logs:
|
||||
importer = self.create_importer()
|
||||
importer.run()
|
||||
|
|
@ -124,6 +132,14 @@ class LoggingLevelTest(unittest.TestCase, helper.TestHelper):
|
|||
self.assertIn('dummy: info import_stage', logs)
|
||||
self.assertNotIn('dummy: debug import_stage', logs)
|
||||
|
||||
self.config['verbose'] = 2
|
||||
with helper.capture_log() as logs:
|
||||
importer = self.create_importer()
|
||||
importer.run()
|
||||
self.assertIn('dummy: warning import_stage', logs)
|
||||
self.assertIn('dummy: info import_stage', logs)
|
||||
self.assertIn('dummy: debug import_stage', logs)
|
||||
|
||||
|
||||
def suite():
|
||||
return unittest.TestLoader().loadTestsFromName(__name__)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class ArgumentsMock(object):
|
|||
def __init__(self, mode, show_failures):
|
||||
self.mode = mode
|
||||
self.show_failures = show_failures
|
||||
self.verbose = True
|
||||
self.verbose = 1
|
||||
|
||||
|
||||
def _params(url):
|
||||
|
|
|
|||
Loading…
Reference in a new issue