wiki:programmersguide/log_support

Version 8 (modified by raphael.costa, 10 years ago) (diff)

--

Suporte de Log no TerraMA²

  • Quais são as macros de compilação necessárias?
  • Qual a biblioteca utilizada e por que?
  • Como usar o suporte de Log?
  • O que adicionar ao CMakeLists.txt de um novo módulo ou aplicativo para utilizar o suporte de Log?
  • Fazer um componente Qt que possibilite ver o log? implementar como um sink?

Boost Log

Macros de compilação

BOOST_LOG_DYN_LINK Assume que a biblioteca será dinamicamente carregada, ou seja, "dll", "so"
BOOST_LOG_NO_THREADS Desabilita o suporte a multithread. É alterada automaticamente quando não é encontrado o suporte a threads
BOOST_LOG_WITHOUT_CHAR
BOOST_LOG_WITHOUT_WCHAR_T
BOOST_LOG_NO_QUERY_PERFORMANCE_COUNTER
BOOST_LOG_USE_NATIVE_SYSLOG Afeta em tempo de compilação da biblioteca. Se por alguma razao o suporte a API SysLog? nativa não for detectada, esta macro permite forçar e habilita-la. BOOST_LOG_WITHOUT_DEFAULT_FACTORIES
BOOST_LOG_WITHOUT_SETTINGS_PARSERS
BOOST_LOG_WITHOUT_DEBUG_OUTPUT
BOOST_LOG_WITHOUT_EVENT_LOG Afeta em tempo de compilação da biblioteca. Se definida, o suporte ao evento de log do Windows não será construído. Defining the macro also makes Message Compiler toolset unnecessary.
BOOST_LOG_WITHOUT_SYSLOG Afeta em tempo de compilação da biblioteca. Se definida, o suporte do syslog não será construido
BOOST_LOG_NO_SHORTHAND_NAMES
BOOST_LOG_USE_COMPILER_TLS Afeta em tempo de compilação da biblioteca. A macro define os parametros estabelecidos do compilador para armazenamento thread local. Isto pode melhorar o desempenho do Boostlog se as limitações são aceitaveis
BOOST_LOG_USE_STD_REGEX, BOOST_LOG_USE_BOOST_REGEX ou BOOST_LOG_USE_BOOST_XPRESSIVE

Configuraração do CMakeLists.txt

Procurar pela biblioteca boost log:

find_package(Boost 1.54.0 REQUIRED log log_setup system)

Linkar o novo módulo com a biblioteca boost log:

target_link_libraries(terrama2_mod_core terralib_mod_memory
                                        terralib_mod_dataaccess
                                        ${Boost_SYSTEM_LIBRARY}
                                        ${Boost_LOG_SETUP_LIBRARY}
                                        ${Boost_LOG_LIBRARY})

Componente no Qt