summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-17 02:14:07 +0000
committerDavid Robillard <d@drobilla.net>2012-08-17 02:14:07 +0000
commit882245f41683924d0465b5afac2f8bb5c3786e60 (patch)
tree3220e84c90168eadaa7ccbaec06c1dc7ca1aacda
parent137a7fac329b7ca70babf00823efe431035a7657 (diff)
downloadraul-882245f41683924d0465b5afac2f8bb5c3786e60.tar.gz
raul-882245f41683924d0465b5afac2f8bb5c3786e60.tar.bz2
raul-882245f41683924d0465b5afac2f8bb5c3786e60.zip
Implement real logging system, LV2 log extension support, and purge evil/ugly/untranslatable C++ stream printing.
Remove coloured log stuff from Raul. git-svn-id: http://svn.drobilla.net/lad/trunk/raul@4717 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--raul/Process.hpp4
-rw-r--r--raul/fmt.hpp28
-rw-r--r--raul/log.hpp105
-rw-r--r--src/log.cpp83
-rw-r--r--wscript1
5 files changed, 28 insertions, 193 deletions
diff --git a/raul/Process.hpp b/raul/Process.hpp
index 238e8c0..96ac831 100644
--- a/raul/Process.hpp
+++ b/raul/Process.hpp
@@ -24,7 +24,6 @@
#include <string>
#include "raul/Noncopyable.hpp"
-#include "raul/log.hpp"
namespace Raul {
@@ -47,9 +46,6 @@ public:
const std::string arguments = command.substr((command.find(" ") + 1));
- info << "Launching child process '" << executable << "' with arguments '"
- << arguments << "'" << std::endl;
-
// Use the same double fork() trick as JACK to prevent zombie children
const int err = fork();
diff --git a/raul/fmt.hpp b/raul/fmt.hpp
new file mode 100644
index 0000000..8af82f0
--- /dev/null
+++ b/raul/fmt.hpp
@@ -0,0 +1,28 @@
+/*
+ This file is part of Raul.
+ Copyright 2007-2012 David Robillard <http://drobilla.net>
+
+ Raul is free software: you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation, either version 3 of the License, or any later version.
+
+ Raul is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Raul. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef RAUL_FMT_HPP
+#define RAUL_FMT_HPP
+
+#include <boost/format.hpp>
+
+namespace Raul {
+
+typedef boost::basic_format<char> fmt;
+
+} // namespace Raul
+
+#endif // RAUL_FMT_HPP
diff --git a/raul/log.hpp b/raul/log.hpp
deleted file mode 100644
index 5c0908c..0000000
--- a/raul/log.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- This file is part of Raul.
- Copyright 2007-2012 David Robillard <http://drobilla.net>
-
- Raul is free software: you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation, either version 3 of the License, or any later version.
-
- Raul is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Raul. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef RAUL_LOG_HPP
-#define RAUL_LOG_HPP
-
-#include <boost/format.hpp>
-#include <iostream>
-#include <string>
-
-namespace Raul {
-
-typedef boost::basic_format<char> fmt;
-
-/** Buffer for (possibly coloured) log printing.
- * \ingroup raul
- */
-class LogBuffer : public std::streambuf
-{
-public:
- enum Colour {
- DEFAULT = 0,
- RED = 31,
- GREEN,
- YELLOW,
- BLUE,
- MAGENTA,
- CYAN,
- WHITE
- };
-
- LogBuffer(const char* prefix="", Colour colour=DEFAULT)
- : _prefix(prefix)
- , _out(std::cout)
- , _colour(colour)
- {}
-
- /** Change the colour of the output, e.g. out << colour(RED) << "red" << endl; */
- std::string colour(Colour c);
-
- /** Reset the colour of the output, e.g. out << plain() << "plain" << endl; */
- std::string plain();
-
-protected:
- int_type overflow(int_type c) {
- if (c == '\n')
- emit();
- else if (c != traits_type::eof())
- _line += c;
-
- return c;
- }
-
- int sync() {
- if (!_line.empty())
- emit();
- return 0;
- }
-
-private:
- void emit();
-
- std::string _prefix;
- std::string _line;
- std::ostream& _out;
- Colour _colour;
-};
-
-class NullBuffer : public std::streambuf
-{
-protected:
- int_type overflow(int_type c) { return c; }
- int sync() { return 0; }
-};
-
-class Log : public std::ostream {
-public:
- explicit Log(std::streambuf* buf) : std::ostream(buf) {}
- template<typename T> Log& operator()(const T& o) {
- *this << o;
- return *this;
- }
-};
-
-extern Raul::Log info;
-extern Raul::Log warn;
-extern Raul::Log error;
-extern Raul::Log debug;
-
-} // namespace Raul
-
-#endif // RAUL_LOG_HPP
diff --git a/src/log.cpp b/src/log.cpp
deleted file mode 100644
index 975dece..0000000
--- a/src/log.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- This file is part of Raul.
- Copyright 2007-2012 David Robillard <http://drobilla.net>
-
- Raul is free software: you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation, either version 3 of the License, or any later version.
-
- Raul is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Raul. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <sstream>
-#include <string>
-
-#include "raul/log.hpp"
-#include "raul_config.h"
-
-namespace Raul {
-
-#ifdef RAUL_LOG_COLOUR
-
-LogBuffer info_buffer("", LogBuffer::GREEN);
-LogBuffer warn_buffer("", LogBuffer::YELLOW);
-LogBuffer error_buffer("", LogBuffer::RED);
-#ifdef RAUL_LOG_DEBUG
-LogBuffer debug_buffer("", LogBuffer::CYAN);
-#else
-NullBuffer debug_buffer;
-#endif
-
-#else // !RAUL_LOG_COLOUR
-
-LogBuffer info_buffer("INFO: ");
-LogBuffer warn_buffer("WARNING: ");
-LogBuffer error_buffer("ERROR: ");
-#ifdef RAUL_LOG_DEBUG
-LogBuffer debug_buffer("DEBUG: ");
-#else
-NullBuffer debug_buffer;
-#endif
-
-#endif // RAUL_LOG_COLOUR
-
-Raul::Log info(&info_buffer);
-Raul::Log warn(&warn_buffer);
-Raul::Log error(&error_buffer);
-Raul::Log debug(&debug_buffer);
-
-std::string
-Raul::LogBuffer::colour(Colour c)
-{
- std::stringstream ss;
- ss << "\033[0;" << _colour << "m";
- return ss.str();
-}
-
-std::string
-Raul::LogBuffer::plain()
-{
- return "\033[0m";
-}
-
-void
-Raul::LogBuffer::emit()
-{
- if (_colour != DEFAULT)
- _out << std::string(colour(_colour));
-
- _out << _prefix << _line;
-
- if (_colour != DEFAULT)
- _out << plain();
-
- _out << std::endl;
- _line.clear();
-}
-
-} // namespace Raul
diff --git a/wscript b/wscript
index 2586903..6830a5a 100644
--- a/wscript
+++ b/wscript
@@ -111,7 +111,6 @@ def build(bld):
lib_source = '''
src/Configuration.cpp
src/Thread.cpp
- src/log.cpp
'''
framework = ''