ClickHouse

Форк
0
/
ExtendedLogChannel.cpp 
40 строк · 989.0 Байт
1
#include "ExtendedLogChannel.h"
2

3
#include <sys/time.h>
4
#include <Common/CurrentThread.h>
5
#include <Common/Exception.h>
6
#include <base/getThreadId.h>
7

8

9
namespace DB
10
{
11
namespace ErrorCodes
12
{
13
    extern const int CANNOT_GETTIMEOFDAY;
14
}
15

16
ExtendedLogMessage ExtendedLogMessage::getFrom(const Poco::Message & base)
17
{
18
    ExtendedLogMessage msg_ext(base);
19

20
    ::timeval tv;
21
    if (0 != gettimeofday(&tv, nullptr))
22
        throw ErrnoException(ErrorCodes::CANNOT_GETTIMEOFDAY, "Cannot gettimeofday");
23

24
    msg_ext.time_seconds = static_cast<UInt32>(tv.tv_sec);
25
    msg_ext.time_microseconds = static_cast<UInt32>(tv.tv_usec);
26
    msg_ext.time_in_microseconds = static_cast<UInt64>((tv.tv_sec) * 1000000U + (tv.tv_usec));
27

28
    if (current_thread)
29
    {
30
        auto query_id_ref = CurrentThread::getQueryId();
31
        if (!query_id_ref.empty())
32
            msg_ext.query_id.assign(query_id_ref.data(), query_id_ref.size());
33
    }
34

35
    msg_ext.thread_id = getThreadId();
36

37
    return msg_ext;
38
}
39

40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.