Release
[hcoop/zz_old/debian/suphp.git] / src / Logger.hpp
1 /*
2 suPHP - (c)2002-2005 Sebastian Marsching <sebastian@marsching.com>
3
4 This file is part of suPHP.
5
6 suPHP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 suPHP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with suPHP; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #ifndef SUPHP_LOGGER_H
22
23 namespace suPHP {
24 class Logger;
25
26 enum LogLevel {
27 LOGLEVEL_NONE,
28 LOGLEVEL_ERROR,
29 LOGLEVEL_WARN,
30 LOGLEVEL_INFO
31 };
32 };
33
34 #define SUPHP_LOGGER_H
35
36 #include "Configuration.hpp"
37 //#include "API_Helper.hpp"
38
39 namespace suPHP {
40 /**
41 * Class containing logging facility.
42 * This is only an interface class.
43 * It contains the code doing the formatting
44 * but the API implementation has to provide
45 * the file access code.
46 */
47 class Logger {
48 private:
49 LogLevel logLevel;
50
51 /**
52 * Internal log function
53 */
54 virtual void log(const std::string& classification,
55 const std::string& message) =0;
56
57 protected:
58 /**
59 * Set log level
60 */
61 virtual void setLogLevel(LogLevel level);
62
63 public:
64
65 /***
66 * Get log level
67 */
68 virtual LogLevel getLogLevel();
69
70 /**
71 * Initialize (open logfile)
72 */
73 virtual void init(const Configuration& config) throw (IOException) =0;
74
75 /**
76 * Check wheter Logger has been initialized
77 */
78 virtual bool isInitialized() =0;
79
80 /**
81 * Logs info message
82 */
83 virtual void logInfo(const std::string& message);
84
85 /**
86 * Logs warning
87 */
88 virtual void logWarning(const std::string& message);
89
90 /**
91 * Logs error
92 */
93 virtual void logError(const std::string& message);
94 };
95 };
96
97 #endif // SUPHP_LOGGER_H