diff options
Diffstat (limited to 'cpp/src/Ice/LoggerUtil.cpp')
-rw-r--r-- | cpp/src/Ice/LoggerUtil.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/cpp/src/Ice/LoggerUtil.cpp b/cpp/src/Ice/LoggerUtil.cpp new file mode 100644 index 00000000000..9e8cf0ee36a --- /dev/null +++ b/cpp/src/Ice/LoggerUtil.cpp @@ -0,0 +1,101 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#include <Ice/LoggerUtil.h> +#include <Ice/Logger.h> + +using namespace std; +using namespace Ice; +using namespace IceInternal; + +Ice::Warning::Warning(const LoggerPtr& logger) : + _logger(logger) +{ +} + +Ice::Warning::~Warning() +{ + flush(); +} + +void +Ice::Warning::flush() +{ + string s = _str.str(); + if (!s.empty()) + { + _logger->warning(s); + } + _str.clear(); +} + +Warning& +Ice::operator<<(Warning& out, ios_base& (*val)(ios_base&)) +{ + out.__str() << val; + return out; +} + +Ice::Error::Error(const LoggerPtr& logger) : + _logger(logger) +{ +} + +Ice::Error::~Error() +{ + flush(); +} + +void +Ice::Error::flush() +{ + string s = _str.str(); + if (!s.empty()) + { + _logger->error(s); + } + _str.clear(); +} + +Error& +Ice::operator<<(Error& out, ios_base& (*val)(ios_base&)) +{ + out.__str() << val; + return out; +} + +Ice::Trace::Trace(const LoggerPtr& logger, const string& category) : + _logger(logger), + _category(category) +{ +} + +Ice::Trace::~Trace() +{ + flush(); +} + +void +Ice::Trace::flush() +{ + string s = _str.str(); + if (!s.empty()) + { + _logger->trace(s, _category); + } + _str.clear(); +} + +Trace& +Ice::operator<<(Trace& out, ios_base& (*val)(ios_base&)) +{ + out.__str() << val; + return out; +} |