Experiência com a biblioteca de registro Boost.Log? [fechadas]

88

Estou pensando em começar a usar a biblioteca de registro Boost.Log . Alguém está usando Boost.Log? Por favor, compartilhe suas experiências a esse respeito.

As outras bibliotecas que estou considerando são Apache log4cxx (parece tedioso de instalar, mas meus colegas de equipe querem algo simples para começar) e Pantheios (o mesmo problema, pois funciona com front-end e back-end extras).

amit
fonte
Eu tenho meu próprio sistema de registro, mas estou pensando em mudar, uma questão tão interessante!
Cedric H.
21
bloost.log é MUITO, MUITO lento, incrivelmente complexo de configurar, ele mal passou no processo de revisão e desde a versão 1.47 ainda não está na versão Boost. É uma daquelas bibliotecas que podem não entrar na linha principal nos próximos anos, então, por enquanto, log4c etc são as melhores opções.
4
Na verdade, foi explicado que ele precisa de algumas correções e que o objetivo atual do lançamento é neste verão - as bibliotecas abandonadas não têm um cronograma e um repositório de trabalho em andamento. Além disso, foi relatado pelo autor que o usuário relatou um desempenho MUITO MUITO bom. A complexidade é útil em alguns contextos e, se você não precisar dela, pode apenas usar as macros fáceis fornecidas. Portanto, não concordo com seu comentário.
Klaim
40
Eu realmente gostaria que o StackOverflow parasse de fechar perguntas obviamente úteis como esta como "não construtivas".
Stéphane
6
Eu me pergunto, como está o desempenho em 2015? Talvez usar 2.0 esteja "OK" agora?
Vincas Dargis

Respostas:

41

ATUALIZAÇÃO : desde que este foi escrito, substituí Boost.Log por meu próprio registro personalizado, principalmente porque decidi me livrar de todas as dependências do Boost em todos os meus projetos por vários motivos. Se você concordar em usar o Boost, acho que Boost.Log ainda é uma escolha válida, a julgar pela resposta de Klaim .

Minha experiência com Boost.Log no ano de 2010 segue.


Eu integrei Boost.Log com sucesso em meu motor de jogo e só posso falar coisas boas sobre isso. Claro, é um pouco cedo para usar, já que a versão 2 será a versão real que se tornará o Boost.Log oficial.

Esteja ciente de que a versão "1.0" disponível não está sendo mantida. Para receber atualizações, você deve usar a versão de última geração (tronco), que pode se tornar instável. Leve isso em consideração se for usar esta versão em projetos sérios. Se você não tem medo de usar versões de última geração ou quebras futuras, vá em frente. É muito bom de usar, pois está em seu estado atual.

Há muito tempo achei que o sistema de registro hierárquico em log4j / log4cxx era superior, mas Boost.Log me fez pensar o contrário. A filtragem e os atributos são muito mais flexíveis.

O design de coletores separados por front-end / back-end torna realmente fácil adicionar back-ends adicionais. Não há necessidade de se preocupar com problemas de sincronização ou filtragem que são tratados pelo frontend. A biblioteca também já vem com muitos back-ends, arquivos rotativos, console, syslog, registro de eventos do Windows, etc.

Eu escrevi meus próprios back-ends de pia; um vai para o console do jogo e o outro para uma espécie de sistema de notificação para eventos mais sérios. Foi mais fácil do que eu esperava, estava pronto e funcionando em apenas alguns minutos.

Por último, mas não menos importante, o mantenedor / desenvolvedor é muito útil também. Você terá muita ajuda nos fóruns do projeto. Ele corrigiu dois bugs (dos quais um importante) apenas neste fim de semana que relatei :-)

Oskar N.
fonte
21

ATUALIZAÇÃO: Estou usando Boost.Log em um sistema de motor de jogo e estou muito feliz com isso. É rápido, thread-safe e muito flexível quando você precisa.

Boost.Log deve ser fornecido com todas as bibliotecas Boost em uma versão futura este ano (2013).


Boost.Log é feito para configurar um sistema de log sobre ele. Se você ler a documentação, verá que é tão flexível que qualquer sistema de registro em que você possa pensar pode ser construído com ele (como o registro em um computador distante).

Portanto, existem macros para facilitar o uso em projetos simples, mas acho que é o tipo de biblioteca que é útil principalmente para pessoas que realmente entendem de log e desejam construir uma arquitetura específica para seus aplicativos.

Sobre o desempenho, lembro que houve problemas no envio que o tornaram lento em comparação com outras bibliotecas de registro (menos flexíveis), mas como era um rascunho e a primeira versão ainda não foi lançada, eu não me incomodaria se você não estivesse codificando um aplicação de tempo crítico.

No final, acho que é simplesmente muito "novo" para ser avaliado "agora". Não há nenhuma outra biblioteca de registro tão flexível quanto esta e não tenho certeza se muitas pessoas sentirão necessidade de usá-la.

Atualização: uma troca recente de e-mail com o autor do Boost.Log resultou em alguns dados que sugerem que o Boost.Log é claramente uma excelente alternativa para registro rápido.

Klaim
fonte
7

Recentemente, examinei a implementação de um sistema de registro em um projeto que estava iniciando.

Tentei log4cxx como você mencionou, é realmente muito tedioso para instalar. Levei várias horas para compilá-lo no VS2012 (com outras bibliotecas de dependências ...) e, em seguida, travou quando o usei em meu projeto. Certamente algumas coisas estranhas acontecendo com as bibliotecas padrão não combinam, mas não consegui descobrir.

Então mudei para log4cpp, que comecei a funcionar em apenas alguns minutos. Acho que é elegante e leve, exatamente o que eu precisava. Tem a grande vantagem de possuir as mesmas funcionalidades do já conhecido log4j & co. sistemas de registro que podem ser uma vantagem real para o seu trabalho em equipe (configuração por meio de arquivo de configuração, etc.)

No que diz respeito ao desempenho, é necessária uma chamada de função para verificar se o logger está ativo para o nível da mensagem e, em seguida, uma chamada de função para realmente registrar os dados.

Com algumas macros caseiras (para adicionar LINE & co. Às mensagens), o log4cpp provou ser realmente útil no meu projeto.

Infelizmente, não experimentei o Boost.Log, por isso não posso falar sobre isso, mas espero que este feedback ainda seja útil para você, caso opte por não seguir o caminho do Boost.Log.

Qortex
fonte