Skip to content

Commit e30d4a2

Browse files
committed
Separate internal logging.h and API logger.h
Also add a "None" logging level Thus remove NoopLogger, and sort logging levels by verbosity.
1 parent 4024897 commit e30d4a2

File tree

3 files changed

+77
-51
lines changed

3 files changed

+77
-51
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* This file is part of the OpenKinect Project. http://www.openkinect.org
3+
*
4+
* Copyright (c) 2014 individual OpenKinect contributors. See the CONTRIB file
5+
* for details.
6+
*
7+
* This code is licensed to you under the terms of the Apache License, version
8+
* 2.0, or, at your option, the terms of the GNU General Public License,
9+
* version 2.0. See the APACHE20 and GPL2 files for the text of the licenses,
10+
* or the following URLs:
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
* http://www.gnu.org/licenses/gpl-2.0.txt
13+
*
14+
* If you redistribute this file in source form, modified or unmodified, you
15+
* may:
16+
* 1) Leave this header intact and distribute it under the same terms,
17+
* accompanying it with the APACHE20 and GPL20 files, or
18+
* 2) Delete the Apache 2.0 clause and accompany it with the GPL2 file, or
19+
* 3) Delete the GPL v2 clause and accompany it with the APACHE20 file
20+
* In all cases you must keep the copyright notice intact and include a copy
21+
* of the CONTRIB file.
22+
*
23+
* Binary distributions must follow the binary distribution requirements of
24+
* either License.
25+
*/
26+
27+
#ifndef LIBFREENECT2_LOGGER_H_
28+
#define LIBFREENECT2_LOGGER_H_
29+
30+
#include <string>
31+
#include <sstream>
32+
33+
#include <libfreenect2/config.h>
34+
35+
namespace libfreenect2
36+
{
37+
38+
class LIBFREENECT2_API Logger
39+
{
40+
public:
41+
enum Level
42+
{
43+
None = 0,
44+
Error = 1,
45+
Warning = 2,
46+
Info = 3,
47+
Debug = 4,
48+
};
49+
static Level getDefaultLevel();
50+
51+
virtual ~Logger();
52+
53+
virtual Level level() const;
54+
55+
virtual void log(Level level, const std::string &message) = 0;
56+
protected:
57+
Level level_;
58+
};
59+
60+
LIBFREENECT2_API Logger *createConsoleLogger(Logger::Level level);
61+
LIBFREENECT2_API Logger *createConsoleLoggerWithDefaultLevel();
62+
63+
//libfreenect2 frees the memory of the logger passed in.
64+
LIBFREENECT2_API Logger *getGlobalLogger();
65+
LIBFREENECT2_API void setGlobalLogger(Logger *logger);
66+
67+
} /* namespace libfreenect2 */
68+
#endif /* LIBFREENECT2_LOGGER_H_ */

examples/protonect/include/libfreenect2/logging.h

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -31,40 +31,12 @@
3131
#include <sstream>
3232

3333
#include <libfreenect2/config.h>
34+
#include <libfreenect2/logger.h>
3435

3536
namespace libfreenect2
3637
{
3738

38-
class LIBFREENECT2_API Logger
39-
{
40-
public:
41-
enum Level
42-
{
43-
Debug = 1,
44-
Info = 2,
45-
Warning = 3,
46-
Error = 4,
47-
};
48-
static Level getDefaultLevel();
49-
50-
virtual ~Logger();
51-
52-
virtual Level level() const;
53-
54-
virtual void log(Level level, const std::string &message) = 0;
55-
protected:
56-
Level level_;
57-
};
58-
59-
LIBFREENECT2_API Logger *createConsoleLogger(Logger::Level level);
60-
LIBFREENECT2_API Logger *createConsoleLoggerWithDefaultLevel();
61-
LIBFREENECT2_API Logger *createNoopLogger();
62-
63-
//libfreenect2 frees the memory of the logger passed in.
64-
LIBFREENECT2_API Logger *getGlobalLogger();
65-
LIBFREENECT2_API void setGlobalLogger(Logger *logger);
66-
67-
class LIBFREENECT2_API LogMessage
39+
class LogMessage
6840
{
6941
private:
7042
Logger *logger_;
@@ -82,14 +54,14 @@ std::string getShortName(const char *func);
8254
} /* namespace libfreenect2 */
8355

8456
#if defined(__GNUC__) or defined(__clang__)
85-
#define LIBFREENECT2_LOG_SOURCE ::libfreenect2::getShortName(__PRETTY_FUNCTION__)
57+
#define LOG_SOURCE ::libfreenect2::getShortName(__PRETTY_FUNCTION__)
8658
#elif defined(_MSC_VER)
87-
#define LIBFREENECT2_LOG_SOURCE ::libfreenect2::getShortName(__FUNCSIG__)
59+
#define LOG_SOURCE ::libfreenect2::getShortName(__FUNCSIG__)
8860
#else
89-
#define LIBFREENECT2_LOG_SOURCE ""
61+
#define LOG_SOURCE ""
9062
#endif
9163

92-
#define LOG(LEVEL) (::libfreenect2::LogMessage(::libfreenect2::getGlobalLogger(), ::libfreenect2::Logger::LEVEL).stream() << "[" << LIBFREENECT2_LOG_SOURCE << "] ")
64+
#define LOG(LEVEL) (::libfreenect2::LogMessage(::libfreenect2::getGlobalLogger(), ::libfreenect2::Logger::LEVEL).stream() << "[" << LOG_SOURCE << "] ")
9365
#define LOG_DEBUG LOG(Debug)
9466
#define LOG_INFO LOG(Info)
9567
#define LOG_WARNING LOG(Warning)

examples/protonect/src/logging.cpp

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ Logger::Level Logger::getDefaultLevel()
5454
l = Logger::Warning;
5555
else if(env_logger_level_str == "error")
5656
l = Logger::Error;
57+
else if(env_logger_level_str == "none")
58+
l = Logger::None;
5759
}
5860

5961
return l;
@@ -91,23 +93,12 @@ class ConsoleLogger : public Logger
9193
virtual ~ConsoleLogger() {}
9294
virtual void log(Level level, const std::string &message)
9395
{
94-
if(level < level_) return;
96+
if(level > level_) return;
9597

9698
(level >= Warning ? std::cerr : std::cout) << "[" << level2str(level) << "] " << message << std::endl;
9799
}
98100
};
99101

100-
class NoopLogger : public Logger
101-
{
102-
public:
103-
NoopLogger()
104-
{
105-
level_ = Debug;
106-
}
107-
virtual ~NoopLogger() {}
108-
virtual void log(Level level, const std::string &message) {}
109-
};
110-
111102
Logger *createConsoleLogger(Logger::Level level)
112103
{
113104
return new ConsoleLogger(level);
@@ -118,11 +109,6 @@ Logger *createConsoleLoggerWithDefaultLevel()
118109
return new ConsoleLogger(Logger::getDefaultLevel());
119110
}
120111

121-
Logger *createNoopLogger()
122-
{
123-
return new NoopLogger();
124-
}
125-
126112
LogMessage::LogMessage(Logger *logger, Logger::Level level) : logger_(logger), level_(level)
127113
{
128114

0 commit comments

Comments
 (0)