fix traceback logging level logic
This commit is contained in:
parent
4ce1419cc8
commit
cacefba4c2
4 changed files with 39 additions and 12 deletions
|
@ -119,7 +119,32 @@ class LoggingTestCase(utils.TestCase):
|
|||
self.assertIn('response_code', output[4])
|
||||
|
||||
@log_capture()
|
||||
def test_exception_traceback(self, logs):
|
||||
def test_exception_traceback_logged_in_debug_mode(self, logs):
|
||||
logging.disable(logging.NOTSET)
|
||||
|
||||
response = Response()
|
||||
response.status_code = 0
|
||||
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
|
||||
|
||||
now = u(int(time.time()))
|
||||
entity = 'tests/samples/codefiles/python.py'
|
||||
config = 'tests/samples/configs/good_config.cfg'
|
||||
args = ['--file', entity, '--config', config, '--time', now, '--verbose']
|
||||
|
||||
with utils.mock.patch('wakatime.stats.open') as mock_open:
|
||||
mock_open.side_effect = Exception('FooBar')
|
||||
|
||||
retval = execute(args)
|
||||
self.assertEquals(retval, 102)
|
||||
self.assertEquals(sys.stdout.getvalue(), '')
|
||||
self.assertEquals(sys.stderr.getvalue(), '')
|
||||
|
||||
output = u("\n").join([u(' ').join(x) for x in logs.actual()])
|
||||
self.assertIn(u('WakaTime DEBUG Traceback (most recent call last):'), output)
|
||||
self.assertIn(u('Exception: FooBar'), output)
|
||||
|
||||
@log_capture()
|
||||
def test_exception_traceback_not_logged_normally(self, logs):
|
||||
logging.disable(logging.NOTSET)
|
||||
|
||||
response = Response()
|
||||
|
@ -140,5 +165,4 @@ class LoggingTestCase(utils.TestCase):
|
|||
self.assertEquals(sys.stderr.getvalue(), '')
|
||||
|
||||
output = u("\n").join([u(' ').join(x) for x in logs.actual()])
|
||||
self.assertIn(u('WakaTime ERROR Traceback (most recent call last):'), output)
|
||||
self.assertIn(u('Exception: FooBar'), output)
|
||||
self.assertEquals(u(''), output)
|
||||
|
|
|
@ -73,11 +73,15 @@ class JsonFormatter(logging.Formatter):
|
|||
|
||||
|
||||
def traceback_formatter(*args, **kwargs):
|
||||
if 'level' in kwargs and (kwargs['level'].lower() == 'warn' or kwargs['level'].lower() == 'warning'):
|
||||
try:
|
||||
level = kwargs.get('level', args[0]).lower()
|
||||
except:
|
||||
level = None
|
||||
if level == 'warn' or level == 'warning':
|
||||
logging.getLogger('WakaTime').warning(traceback.format_exc())
|
||||
elif 'level' in kwargs and kwargs['level'].lower() == 'info':
|
||||
elif level == 'info':
|
||||
logging.getLogger('WakaTime').info(traceback.format_exc())
|
||||
elif 'level' in kwargs and kwargs['level'].lower() == 'debug':
|
||||
elif level == 'debug':
|
||||
logging.getLogger('WakaTime').debug(traceback.format_exc())
|
||||
else:
|
||||
logging.getLogger('WakaTime').error(traceback.format_exc())
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
import logging
|
||||
import os
|
||||
import traceback
|
||||
from time import sleep
|
||||
|
||||
try:
|
||||
|
@ -70,7 +69,7 @@ class Queue(object):
|
|||
conn.commit()
|
||||
conn.close()
|
||||
except sqlite3.Error:
|
||||
log.error(traceback.format_exc())
|
||||
log.traceback()
|
||||
|
||||
def pop(self):
|
||||
if not HAS_SQL: # pragma: nocover
|
||||
|
@ -81,7 +80,7 @@ class Queue(object):
|
|||
try:
|
||||
conn, c = self.connect()
|
||||
except sqlite3.Error:
|
||||
log.debug(traceback.format_exc())
|
||||
log.traceback('debug')
|
||||
return None
|
||||
loop = True
|
||||
while loop and tries > -1:
|
||||
|
@ -119,11 +118,11 @@ class Queue(object):
|
|||
}
|
||||
loop = False
|
||||
except sqlite3.Error: # pragma: nocover
|
||||
log.debug(traceback.format_exc())
|
||||
log.traceback('debug')
|
||||
sleep(wait)
|
||||
tries -= 1
|
||||
try:
|
||||
conn.close()
|
||||
except sqlite3.Error: # pragma: nocover
|
||||
log.debug(traceback.format_exc())
|
||||
log.traceback('debug')
|
||||
return heartbeat
|
||||
|
|
|
@ -231,7 +231,7 @@ def get_file_head(file_name):
|
|||
try:
|
||||
with open(file_name, 'r', encoding='utf-8') as fh:
|
||||
text = fh.read(512000)
|
||||
except: # pragma: nocover
|
||||
except:
|
||||
try:
|
||||
with open(file_name, 'r', encoding=sys.getfilesystemencoding()) as fh:
|
||||
text = fh.read(512000)
|
||||
|
|
Loading…
Reference in a new issue