2011-07-14 13 views
26

Nel nostro progetto ora usiamo log4cxx, ma quelle librerie non si sviluppano da qualche anno, anche noi abbiamo qualche problema con esso. Potrebbe consigliare qualche libreria per l'accesso in C++. La libreria deve supportare la registrazione multithreade, log di sistema. Inoltre, sarà utile supportare la registrazione tramite l'operatore < <. Anche la licenza di lib deve essere molto democratica - come boost, apache ecc. Supporto multipiattaforma. Deve supportare linux, windows. Meglio se supporta solaris, aix, hp-ux, ma non è necessario.Migliore libreria di logging per C++

+1

Dai un'occhiata a: [easylogging ++] (https://github.com/easylogging/easyloggingpp). Batte boost :: accedi secondo me. – lepe

risposta

16

boost::log è probabilmente la libreria di registrazione più versatile e ben documentata che abbia mai visto. È piuttosto complicato, ma davvero geniale allo stesso tempo. E fa tutto ciò che riesci a pensare e poi ancora di più.

+0

E sai, perché questa biblioteca ora non è in aumento? È in corso l'approvazione o alcuni problemi seri con esso? – Olympian

+0

In realtà non conosco il motivo esatto; forse non è abbastanza maturo? L'ho usato per un paio di progetti e non ho avuto problemi con esso. – stijn

+1

È stato accettato, ma ci sono stati alcuni problemi con il caricamento nel baule di boost (qualcosa che ha a che fare con la versione di Phoenix IIRC). Di recente c'è stata una discussione sulla mailing list di boost su questo. – Ralf

3

Check out pantheios!

+1

Questa libreria supporta il multi-logging (non so come si chiami) - per esempio ho il modulo A, B. Voglio impostare la traccia a livello log per A e solo l'errore per B? E sta creando nuovi logger e li sta configurando in modo semplice? O a volte nessuno-insignificante – Olympian

+2

Pantheios sembra davvero grande, tranne che l'autore sembra averlo lasciato morire sulla vite per almeno 18 mesi, e non costruirà usando le ultime versioni del compilatore :-( –

3

Noi utilizziamo log4cplus nella nostra azienda, fornisce un sistema di registrazione gerarchico complesso (basato su log4j). Sembra avere tutto ciò che stai chiedendo. Fornisce molti (personalmente scelgo questa libreria per i file rotanti linux/windows e linux Syslog).

La libreria è abbastanza semplice da compilare e distribuire su entrambe le finestre di Linux & E fare il lavoro non è un problema finora (circa 4 anni di produzione).

Unico inconveniente, la mancanza di documentazione ma il codice è abbastanza auto-esplicativo. Buon nuovo è che si può andare alla pagina di documentazione di log4j per capire come configuratori/modelli/ecc funziona ...

12

Io uso la libreria glog, da google (perché non ho potuto installare facilmente Boost.Log). È sia semplice da usare che potente.

+0

Sì, guardo questa libreria è facile, ma per i giovani - temo ci siano alcuni bug errati :( – Olympian

+0

Sembra interessante! Grazie –

+2

glog ha alcuni svantaggi: - prende la configurazione dai flag della riga di comando (e quindi funziona meglio con gflags - si prevede di essere inizializzato dal main, quindi non è previsto che venga utilizzato nelle librerie caricate dinamicamente (dove ogni libreria si trova nella propria glog); - manca il doc per windows (ad es.qual è un percorso file predefinito per i registri); Dall'altro lato: è di alta qualità, ben collaudato, utilizzato in enormi sistemi di produzione. –