@Elnurhan

Как избавиться от спама в логах — libusb_set_log_cb?

Всем привет! В libusb 1.0.23 была добавлена функция libusb_set_log_cb. Я решил через неё сделать логгирование и написал следующую libusb_log_cb функцию:
// In this function I am checking the libusb_log_level then call my log function
// that takes the my logger class, my enum with the log levels and str for logging.
// My log func logs the argument "str" in the file "libusbLogs.log" with the MY_LEVELS level.
void libusbLog(libusb_context* ctx, enum libusb_log_level level, const char* str)
{
    switch (level)
    {
    case LIBUSB_LOG_LEVEL_ERROR:    myFuncForLog(myLogger, MY_LEVELS::LOG_ERROR, 
        "[ctx: " << ctx << "]: " << str); 
        break;
    case LIBUSB_LOG_LEVEL_WARNING:  myFuncForLog(myLogger, MY_LEVELS::LOG_WARNING,
        "[ctx: " << ctx << "]: " << str);
        break;
    case LIBUSB_LOG_LEVEL_INFO:     myFuncForLog(myLogger, MY_LEVELS::LOG_INFO,
        "[ctx: " << ctx << "]: " << str);
        break;
    case LIBUSB_LOG_LEVEL_DEBUG:    myFuncForLog(myLogger, MY_LEVELS::LOG_DEBUG,
        "[ctx: " << ctx << "]: " << str);
        break;
    }
}


Она работает корректно, но в моём .log файле очень много DEBUG записей. За минуту размер файла вырос до 10MB. Пытался сделать так, чтобы сообщения логгировались каждые n раз, но в таком случае я терял, некоторые логи.

Крошечная часть моего лог-файла:
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.099145] [000028b4] libusb: debug [libusb_alloc_transfer] transfer 000001EBC07ECDE8
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.101217] [000028b4] libusb: debug [libusb_submit_transfer] transfer 000001EBC07ECDE8
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.102180] [000028b4] libusb: debug [usbi_add_pollfd] add fd 2 events 1
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.102895] [000028b4] libusb: debug [hid_submit_bulk_transfer] matched endpoint 81 with interface 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.103864] [000028b4] libusb: debug [hid_submit_bulk_transfer] reading 256 bytes (report ID: 0x00)
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.105138] [000028b4] libusb: debug [libusb_get_next_timeout] next timeout in 0.001000s
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.105971] [000028b4] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.107024] [000028b4] libusb: debug [handle_events] poll fds modified, reallocating
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.107822] [000028b4] libusb: debug [handle_events] poll() 2 fds with timeout in 1ms
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.109117] [000028b4] libusb: debug [handle_events] poll() returned 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.109920] [000028b4] libusb: debug [libusb_cancel_transfer] transfer 000001EBC07ECDE8
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.110966] [000028b4] libusb: debug [hid_abort_transfers] will use interface 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.111787] [000028b4] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.112857] [000028b4] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.113848] [000028b4] libusb: debug [handle_events] poll() 2 fds with timeout in 60000ms
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.114696] [000028b4] libusb: debug [handle_events] poll() returned 1
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.115409] [000028b4] libusb: debug [windows_handle_events] checking fd 2 with revents = 0001
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.116292] [000028b4] libusb: debug [usbi_remove_pollfd] remove fd 2
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.117005] [000028b4] libusb: debug [windows_transfer_callback] handling I/O completion with errcode 995, size 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.118187] [000028b4] libusb: debug [windows_transfer_callback] detected operation aborted
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.119049] [000028b4] libusb: debug [usbi_handle_transfer_cancellation] detected timeout cancellation
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.120014] [000028b4] libusb: debug [usbi_handle_transfer_completion] transfer 000001EBC07ECDE8 has callback 00007FFDFFB644C0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.121241] [000028b4] libusb: debug [sync_transfer_cb] actual_length=0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.121935] [000028b4] libusb: debug [libusb_free_transfer] transfer 000001EBC07ECDE8
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.128270] [000028b4] libusb: debug [libusb_alloc_transfer] transfer 000001EBC07ED028
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.129688] [000028b4] libusb: debug [libusb_submit_transfer] transfer 000001EBC07ED028
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.130563] [000028b4] libusb: debug [usbi_add_pollfd] add fd 2 events 1
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.131298] [000028b4] libusb: debug [hid_submit_bulk_transfer] matched endpoint 81 with interface 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.132267] [000028b4] libusb: debug [hid_submit_bulk_transfer] reading 256 bytes (report ID: 0x00)
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.133239] [000028b4] libusb: debug [libusb_get_next_timeout] next timeout in 0.001300s
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.134218] [000028b4] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.135238] [000028b4] libusb: debug [handle_events] poll fds modified, reallocating
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.136088] [000028b4] libusb: debug [handle_events] poll() 2 fds with timeout in 2ms
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.140041] [000028b4] libusb: debug [handle_events] poll() returned 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.140898] [000028b4] libusb: debug [libusb_cancel_transfer] transfer 000001EBC07ED028
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.141772] [000028b4] libusb: debug [hid_abort_transfers] will use interface 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.143292] [000028b4] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.144385] [000028b4] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.145395] [000028b4] libusb: debug [handle_events] poll() 2 fds with timeout in 60000ms
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.146376] [000028b4] libusb: debug [handle_events] poll() returned 1
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.147042] [000028b4] libusb: debug [windows_handle_events] checking fd 2 with revents = 0001
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.147921] [000028b4] libusb: debug [usbi_remove_pollfd] remove fd 2
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.148580] [000028b4] libusb: debug [windows_transfer_callback] handling I/O completion with errcode 995, size 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.149646] [000028b4] libusb: debug [windows_transfer_callback] detected operation aborted
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.150669] [000028b4] libusb: debug [usbi_handle_transfer_cancellation] detected timeout cancellation
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.151635] [000028b4] libusb: debug [usbi_handle_transfer_completion] transfer 000001EBC07ED028 has callback 00007FFDFFB644C0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.152806] [000028b4] libusb: debug [sync_transfer_cb] actual_length=0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.153513] [000028b4] libusb: debug [libusb_free_transfer] transfer 000001EBC07ED028
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.160173] [000028b4] libusb: debug [libusb_alloc_transfer] transfer 000001EBC07EBD08
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.161977] [000028b4] libusb: debug [libusb_submit_transfer] transfer 000001EBC07EBD08
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.163117] [000028b4] libusb: debug [usbi_add_pollfd] add fd 2 events 1
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.163940] [000028b4] libusb: debug [hid_submit_bulk_transfer] matched endpoint 81 with interface 0
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.164930] [000028b4] libusb: debug [hid_submit_bulk_transfer] reading 256 bytes (report ID: 0x00)
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.165952] [000028b4] libusb: debug [libusb_get_next_timeout] next timeout in 0.001200s
UsbUtils::UsbProvider::libusbLog : [ctx: 000001EBC1173AC0]: [ 0.166844] [000028b4] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling


Какие есть идеи?
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 окт. 2020, в 10:08
5000 руб./за проект
26 окт. 2020, в 09:51
3000 руб./за проект
26 окт. 2020, в 09:41
10000 руб./за проект