2014-09-15 2 views
8

Aggiungo la registrazione a un vecchio programma C++. Dopo alcune ricerche, ho deciso di utilizzare Boost Log. La documentazione è piena di esempi di creazione di sink e filtri. Tuttavia, non sono riuscito a trovare alcun esempio di un file di configurazione del registro.Boost.Log File di configurazione

C'è un modo per configurare la registrazione da un file che non deve essere compilato? Simile a ciò che ha log4net? O Python (beh, dato che Python non è compilato, comunque ...)?

risposta

9

Alla fine ho trovato la documentazione ufficiale, sia esso stato aggiunto di recente, o si è ben nascosto in modo che non ho visto prima:

http://www.boost.org/doc/libs/1_57_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.settings_file


Purtroppo, non posso trovare una risposta esaustiva né, ma alcune osservazioni:

Certamente è possibile utilizzare un file di configurazione:

boost::log::init_from_stream(std::basic_istream< CharT > &)

Esempio del file (da Boost log severity_logger init_from_stream):

[Sinks.MySink] 
Destination=Console 
Format="%LineID%: <%Severity%> - %Message%" 

dal seguente link è possibile individuare ulteriori chiavi di impostazione valide e valori (ad esempio, Destinazione = TextFile, Filtro =, AutoFlush =, FileName =)

http://boost.2283326.n4.nabble.com/log-init-from-settings-problem-with-applying-format-and-filter-td3643483.html

Costanti in parser_utils.hpp di spinta dare un'altra idea di parole chiave che sono di default supportato dal file di configurazione (sezione Eg [Core] con chiave DisableLogging).

impostazioni che prevedono tipi definiti dall'utente è descritto qui (con un corrispondente frammento di file di configurazione alla fine della pagina):

http://www.boost.org/doc/libs/1_57_0/libs/log/doc/html/log/extension/settings.html

Mi sembra che sia difficile trovare un descrizione delle voci di formato del file di configurazione perché le voci valide derivano dal codice sorgente che implementa i sink, i filtri, ecc. Questa implementazione può essere definita anche dall'utente, quindi è impossibile fornire una descrizione esplicita del formato di configurazione.

Forse puoi provare a creare la tua configurazione in modo programmatico e quando lo trasformi nel modulo del file di configurazione, puoi aprire domande separate per le proprietà particolari che non riesci a trovare come impostarle.