#include <log/message_dictionary.h>
#include <log/message_types.h>
-#include <boost/make_shared.hpp>
-
#include <util/strutil.h>
using namespace std;
namespace isc {
namespace log {
-LoggerImplPtr
+LoggerImpl*
Logger::getLoggerPtr() {
if (!initialized_) {
lock_guard<mutex> lk(mutex_);
void
Logger::initLoggerImpl() {
if (isLoggingInitialized()) {
- loggerptr_ = boost::make_shared<LoggerImpl>(name_);
+ loggerptr_ = new LoggerImpl(name_);
} else {
isc_throw(LoggingNotInitialized, "attempt to access logging function "
"before logging has been initialized");
// Destructor.
Logger::~Logger() {
+ delete loggerptr_;
+
+ // The next statement is required for the Kea hooks framework, where a
+ // statically-linked Kea loads and unloads multiple libraries. See the hooks
+ // documentation for more details.
+ loggerptr_ = 0;
}
// Get Version
#include <string>
#include <exceptions/exceptions.h>
-#include <log/logger_impl.h>
#include <log/logger_level.h>
#include <log/message_types.h>
#include <log/log_formatter.h>
/// \note Note also that there is no constructor taking a std::string. This
/// minimizes the possibility of initializing a static logger with a
/// string, so leading to problems mentioned above.
- Logger(const char* name) : loggerptr_(), initialized_(false) {
+ Logger(const char* name) : loggerptr_(0), initialized_(false) {
// Validate the name of the logger.
if (name) {
/// cause a "LoggingNotInitialized" exception to be thrown.
///
/// \return Returns pointer to implementation
- LoggerImplPtr getLoggerPtr();
+ LoggerImpl* getLoggerPtr();
/// \brief Initialize Underlying Implementation and Set loggerptr_
void initLoggerImpl();
///< Pointer to underlying logger
- LoggerImplPtr loggerptr_;
+ LoggerImpl* loggerptr_;
///< Copy of the logger name
char name_[MAX_LOGGER_NAME_SIZE + 1];
-// Copyright (C) 2011-2019 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2011-2020 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
#include <boost/shared_ptr.hpp>
#include <boost/noncopyable.hpp>
-
// log4cplus logger header file
#include <log4cplus/logger.h>
isc::log::interprocess::InterprocessSync* sync_;
};
-/// \brief Pointer to the Logger implementation.
-typedef boost::shared_ptr<LoggerImpl> LoggerImplPtr;
-
} // namespace log
} // namespace isc