7bce72b21da9630a27c3f121b8cf330776ca685a
[anna.git] / TraceLogger.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_core_tracing_TraceLogger_hpp
10 #define anna_core_tracing_TraceLogger_hpp
11
12 #include <anna/core/tracing/Logger.hpp>
13
14 namespace anna {
15
16 /**
17    Clase usada por defecto para transferir los datos de la aplicacion al archivo de log.
18
19    Para mas informacion:
20       @li man syslog
21       @li man syslogd
22       @li man syslog.conf
23
24    El destino del archivos de logs sera configurado mediante el archivo /etc/syslog.conf
25
26    Ă‰sta clase se registra como la facilidad (local0).
27
28    \warning Sustituye a la clase Logger::DefaultWriter.
29 */
30 class TraceLogger : public Logger::Writer {
31 private:
32   /**
33      Inicializa el sistema de historico de nuestra aplicacion.
34
35      @param ident Identifica las trazas de nuestra aplicacion que apareceran  en el archivo de historico.
36      Deberia ser un texto con entre 4 y 16 caracteres.
37   */
38   void initialize(const char* ident) throw();
39
40   /**
41      Transfiere el mensaje de trazas al log del sistema.
42
43      @param level Nivel de las trazas que vamos a sacar.
44      @param text Especificacion de formato del mensaje. Similar al usado en el comando sprintf.
45   */
46   void do_write(int level, const char* text, ...) throw();
47 };
48
49 }
50
51 #endif
52
53