예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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'})
예제 #5
0
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'},
    )
예제 #6
0
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'},
    )
예제 #7
0
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'},
    )
예제 #8
0
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"')
예제 #9
0
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"')
예제 #10
0
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'
예제 #11
0
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})
예제 #12
0
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},
    )
예제 #13
0
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},
    )
예제 #14
0
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
예제 #15
0
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'
예제 #16
0
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()
예제 #17
0
파일: celery.py 프로젝트: fgallina/talisker
def run():
    os.environ['CELERYD_HIJACK_ROOT_LOGGER'] = 'false'
    from celery.__main__ import main
    logs.configure()
    main()
예제 #18
0
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)
예제 #19
0
def test_configure_twice():
    logs.configure()
    logs.configure()
    assert len(logging.getLogger().handlers) == 1
예제 #20
0
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)
예제 #21
0
def test_configure_colored(config, log, monkeypatch):
    config['color'] = 'default'
    logs.configure(config)
    assert isinstance(logs.get_talisker_handler().formatter,
                      logs.ColoredFormatter)