Rudiments
logger.h
1 // Copyright (c) 2002 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_LOGGER_H
5 #define RUDIMENTS_LOGGER_H
6 
7 #include <rudiments/private/loggerincludes.h>
8 
11 class RUDIMENTS_DLLSPEC logdestination {
12  #include <rudiments/private/logdestination.h>
13 };
14 
15 class syslogdestinationprivate;
16 
18 class RUDIMENTS_DLLSPEC syslogdestination : public logdestination {
19  public:
20 
23 
27 
30  syslogdestination &operator=(const syslogdestination &f);
31 
33  virtual ~syslogdestination();
34 
38  void open(const char *ident, int32_t option,
39  int32_t facility, int32_t priority);
40 
42  void close();
43  #include <rudiments/private/syslogdestination.h>
44 };
45 
46 
47 class filedestinationprivate;
48 
50 class RUDIMENTS_DLLSPEC filedestination : public logdestination {
51  public:
52 
55 
59 
62  filedestination &operator=(const filedestination &f);
63 
65  virtual ~filedestination();
66 
68  bool open(const char *filename);
69 
71  void close();
72  #include <rudiments/private/filedestination.h>
73 };
74 
75 
77 class RUDIMENTS_DLLSPEC stdoutdestination : public logdestination {
78  #include <rudiments/private/stdoutdestination.h>
79 };
80 
81 
83 class RUDIMENTS_DLLSPEC stderrdestination : public logdestination {
84  #include <rudiments/private/stderrdestination.h>
85 };
86 
87 
90 
91 class loggerprivate;
92 
102 class RUDIMENTS_DLLSPEC logger {
103  public:
104 
106  logger();
107 
109  ~logger();
110 
113  void addLogDestination(logdestination *logdest);
114 
117  void removeLogDestination(logdestination *logdest);
118 
121  void removeAllLogDestinations();
122 
123 
139  static char *logHeader(const char *name);
140 
141 
144  void write(const char *header, int32_t tabs,
145  const char *string);
146 
149  void write(const char *header, int32_t tabs, char character);
150 
153  void write(const char *header, int32_t tabs, int32_t number);
154 
157  void write(const char *header, int32_t tabs, double number);
158 
159  #include <rudiments/private/logger.h>
160 };
161 
162 #endif