Информация об изменениях

Сообщение Объединение логов boost::log от 15.04.2019 13:21

Изменено 16.04.2019 14:55 plastictown

Объединение логов boost::log
Доброго времени суток! Если вкратце, проблема такова: была библиотека, использующая boost::log, в процессе разработки она развалилась на библиотеку и плагины, все также использующие boost::log. После этого обнаружилось для венды: необходимо настроить лог для каждого подгружаемого плагина в отдельности, ну хорошо, сделал отдельный лог каждому плагину, настраиваю в DllMain(). Для линукса: если не настраивать, он пишет в stdout, если настраивать (в конструкторе библиотеки), то он настраивается глобально, да и вообще ведет себя подозрительно
В общем... можно ли объединить логи из разных библиотек в один, не прибегая к вуду, и как-то кроссплатформенно.

ЗЫ: настройка лога:
boost::log::add_file_log
  (
    boost::log::keywords::file_name = path,
    boost::log::keywords::rotation_size = 1024 * 1024,
    boost::log::keywords::open_mode = std::ios_base::app | std::ios_base::out,
    boost::log::keywords::auto_flush = true,
    boost::log::keywords::format =
    (
      boost::log::expressions::stream
      << boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S")
      << ": <" << logging::trivial::severity
      << "> " << boost::log::expressions::smessage
      )
  );

Это вроде почти как в документации, сейчас использую только BOOST_LOG_TRIVIAL.

Всем спасибо!
dll dllmain boost::log __attribute__((constructor))
Объединение логов boost::log
Доброго времени суток! Если вкратце, проблема такова: была библиотека, использующая boost::log, в процессе разработки она развалилась на библиотеку и плагины, все также использующие boost::log. После этого обнаружилось для венды: необходимо настроить лог для каждого подгружаемого плагина в отдельности, ну хорошо, сделал отдельный лог каждому плагину, настраиваю в DllMain(). Для линукса: если не настраивать, он пишет в stdout, если настраивать (в конструкторе библиотеки), то он настраивается глобально, да и вообще ведет себя подозрительно
В общем... можно ли объединить логи из разных библиотек в один, не прибегая к вуду, и как-то кроссплатформенно.

ЗЫ: настройка лога:
boost::log::add_file_log
  (
    boost::log::keywords::file_name = path,
    boost::log::keywords::rotation_size = 1024 * 1024,
    boost::log::keywords::open_mode = std::ios_base::app | std::ios_base::out,
    boost::log::keywords::auto_flush = true,
    boost::log::keywords::format =
    (
      boost::log::expressions::stream
      << boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S")
      << ": <" << logging::trivial::severity
      << "> " << boost::log::expressions::smessage
      )
  );

Это вроде почти как в документации, сейчас использую только BOOST_LOG_TRIVIAL.

Всем спасибо!

ЗЫ: им вообще кто-нибудь пользуется?))
dll dllmain boost::log __attribute__((constructor))