def test_configure_twice(config): handlers = logging.getLogger().handlers logs.configure(config) before = len([h for h in handlers if hasattr(h, '_talisker_handler')]) logs.configure(config) after = len([h for h in handlers if hasattr(h, '_talisker_handler')]) assert before == after
def test_configure_twice(config): logs.configure(config) logs.configure(config) handlers = logging.getLogger().handlers talisker_handlers = [h for h in handlers if hasattr(h, '_talisker_handler')] assert len(talisker_handlers) == 2 # root and sentry
def test_configure_debug_log_bad_file(config, log): config['debuglog'] = '/nopenopenope' logs.configure(config) assert_record_logged(log, msg='could not', logger='talisker.logs', level='INFO', extra={'path': '/nopenopenope'})
def test_configure_debug_log_bad_file(config, context): config['DEBUGLOG'] = '/nopenopenope' logs.configure(config) context.assert_log( msg='could not', name='talisker.logs', level='INFO', extra={'path': '/nopenopenope'}, )
def test_configure_debug_log_bad_file(config, context): config['debuglog'] = '/nopenopenope' logs.configure(config) assert context.logs.exists( msg='could not', name='talisker.logs', level='INFO', extra={'path': '/nopenopenope'}, )
def test_configure(config, capsys): logs.configure(config) assert not isinstance(logs.get_talisker_handler().formatter, logs.ColouredFormatter) logger = logging.getLogger('test') logger.info('test msg') out, err = capsys.readouterr() assert out == "" assert err, "No stderr output" assert_output_includes_message(err, 'INFO test "test msg"')
def test_configure(config, capsys): logs.configure(config) assert not isinstance( logs.get_talisker_handler().formatter, logs.ColouredFormatter) logger = logging.getLogger('test') logger.info('test msg') out, err = capsys.readouterr() assert out == "" assert err, "No stderr output" assert_output_includes_message(err, 'INFO test "test msg"')
def test_configure_debug_log_bad_file(capsys): logs.configure(debug='/nopenopenope') out, err = capsys.readouterr() assert out == "" assert err timestamp, level, name, msg, structured = parse_logfmt(err) assert level == 'INFO' assert name == 'talisker.logs' assert 'could not' in msg assert structured['path'] == '/nopenopenope'
def test_configure_debug_log(config, log): tmp = tempfile.mkdtemp() logfile = os.path.join(tmp, 'log') config['debuglog'] = logfile logs.configure(config) assert_record_logged(log, msg='enabling', logger='talisker.logs', level='INFO', extra={'path': logfile})
def test_configure_debug_log(config, context): tmp = tempfile.mkdtemp() logfile = os.path.join(tmp, 'log') config['DEBUGLOG'] = logfile logs.configure(config) context.assert_log( msg='enabling', name='talisker.logs', level='INFO', extra={'path': logfile}, )
def test_configure_debug_log(capsys): tmp = tempfile.mkdtemp() logfile = os.path.join(tmp, 'log') logs.configure(debug=logfile) out, err = capsys.readouterr() assert out == "" assert err timestamp, level, name, msg, structured = parse_logfmt(err) assert level == 'INFO' assert name == 'talisker.logs' assert 'enabling' in msg assert structured['path'] == logfile
def test_configure(capsys): logs.configure(logging.INFO, tags=dict(foo='bar baz')) logger = logging.getLogger('test') logger.info('test msg') out, err = capsys.readouterr() assert out == "" assert err timestamp, level, name, msg, structured = parse_logfmt(err) assert level == 'INFO' assert name == 'test' assert msg == 'test msg' assert structured['foo'] == 'bar baz'
def run(): # these must be done before importing celery. logs.configure() os.environ['CELERYD_HIJACK_ROOT_LOGGER'] = 'False' os.environ['CELERYD_REDIRECT_STDOUTS'] = 'False' from celery.__main__ import main from celery.signals import setup_logging # take control of this signal, which prevents celery from setting up it's # own logging @setup_logging.connect def setup_celery_logging(**kwargs): # TODO: maybe add process id to extra? pass # pragma: no cover enable_metrics() main()
def run(): os.environ['CELERYD_HIJACK_ROOT_LOGGER'] = 'false' from celery.__main__ import main logs.configure() main()
def test_configure_coloured(config, monkeypatch): config['TALISKER_COLOUR'] = 'default' config['DEVEL'] = True logs.configure(config) assert isinstance( logs.get_talisker_handler().formatter, logs.ColouredFormatter)
def test_configure_twice(): logs.configure() logs.configure() assert len(logging.getLogger().handlers) == 1
def test_configure_coloured(config, monkeypatch): config['TALISKER_COLOUR'] = 'default' config['DEVEL'] = True logs.configure(config) assert isinstance(logs.get_talisker_handler().formatter, logs.ColouredFormatter)
def test_configure_colored(config, log, monkeypatch): config['color'] = 'default' logs.configure(config) assert isinstance(logs.get_talisker_handler().formatter, logs.ColoredFormatter)