예제 #1
0
def test_logging_logstash_formatter_version_1():
    log_record = LogRecord(
        name="test_logging_ColoredFormatter_format",
        level=1,
        pathname="test/logging",
        lineno=1,
        msg="hello world",
        args=["args1", "args2"],
        exc_info=None,
    )
    time_stamp = 1_400_000_000
    log_record.created = time_stamp
    formater_base = LogstashFormatterVersion1()
    hostname = socket.gethostname()
    data_format = formater_base.format(log_record).decode()
    data = ujson.loads(data_format)

    assert data == {
        "@timestamp": "2014-05-13T16:53:20.000Z",
        "@version": "1",
        "message": "hello world",
        "host": f"{hostname}",
        "path": "test/logging",
        "tags": [],
        "type": "Logstash",
        "level": "Level 1",
        "logger_name": "test_logging_ColoredFormatter_format",
        "stack_info": None,
    }
예제 #2
0
def test_logging_async_wrapper_handler():
    async_wrapper = AsyncWrapperHandler(handler=HandlerCheck)
    assert async_wrapper.queue.maxsize == MAX_QUEUE_SIZE

    log_record_array_inter = []
    log_record_array_outer = []

    assert not HandlerCheck.check_data

    async_wrapper.listener.stop()
    time.sleep(2)

    for _ in range(80):
        log_record = LogRecord(
            name="test_logging_ColoredFormatter_format",
            level=1,
            pathname="test/logging",
            lineno=1,
            msg="hello world",
            args=["args1", "args2"],
            exc_info=None,
        )
        time_stamp = 1_400_000_000
        log_record.created = time_stamp
        log_record_array_inter.append(log_record)
        async_wrapper.emit(log_record)

    for _ in range(80):
        check_enqueue_d = async_wrapper.listener.dequeue(False)
        log_record_array_outer.append(check_enqueue_d)

    assert async_wrapper.queue.empty()
    assert log_record_array_inter == log_record_array_outer
예제 #3
0
 def record(self, app_name):
     self.record_count += 1
     msg =  "log msg %r" %(self.record_count, )
     record = LogRecord("name", logging.INFO, "x.py", 42, msg, None, None)
     record.app_name = app_name
     record.created = 100 + self.record_count
     record.msecs = 42
     return record
예제 #4
0
def create_log_record(created: float, msg: str) -> LogRecord:
    record = LogRecord(name=None,
                       level=None,
                       pathname=None,
                       lineno=None,
                       msg=msg,
                       args=None,
                       exc_info=None)
    record.created = created
    return record
예제 #5
0
 def create_log_record(name, record_created, level_no, func_name, pathname,
                       lineno, msg):
     log_record = LogRecord(name=name,
                            levelno=level_no,
                            lineno=lineno,
                            func=func_name,
                            pathname=pathname,
                            msg=msg,
                            level=level_no,
                            args={},
                            exc_info={})
     log_record.created = record_created
     return log_record
예제 #6
0
def test_logging_syslog_formatter():
    log_record = LogRecord(
        name="test_logging_ColoredFormatter_format",
        level=1,
        pathname="test/logging",
        lineno=1,
        msg="hello world",
        args=["args1", "args2"],
        exc_info=None,
    )
    timestamp = 1_400_000_000
    log_record.created = timestamp
    log_record.extra_msg = {"extra_msg1": "foo"}
    formater_base = SyslogFormatter()
    hostname = socket.getfqdn()
    formatted_time = datetime.fromtimestamp(timestamp).isoformat(sep=" ")
    assert (
        formater_base.format(log_record).strip() == f"[{formatted_time}] [{hostname}] [Level 1] "
        "[(test_logging_ColoredFormatter_format) logging:1] "
        '[null] [hello world] [{"json_extra_msg1":"foo"}]'
    )
예제 #7
0
def test_redis_handler(client_redis):
    handler = AsyncRedisHandler()
    for _ in range(10):
        log_record = LogRecord(
            name="test_logging_ColoredFormatter_format",
            level=1,
            pathname="test/logging",
            lineno=1,
            msg="hello world",
            args=["args1", "args2"],
            exc_info=None,
        )

        time_stamp = 1_400_000_000
        log_record.created = time_stamp
        handler.enqueue(log_record)

    time.sleep(2)

    key = client_redis.keys()[0]
    assert b"logstash" == key
    vals = client_redis.lrange(key, 0, -1)
    assert 10 == len(vals)
예제 #8
0
def test_log_format(mocker):
    record = LogRecord('foo.bar', INFO, '', 0, 'Message', ['foo', 'bar', 1000], None)
    record.created = 0
    msg = log.JoinFormatter.format(record)

    assert msg == '1970-01-01T00:00:00Z INFO foo.bar: Message foo bar 1000'