LoggerManager.h
Go to the documentation of this file.
// This file is a part of the OpenSurgSim project.
// Copyright 2013-2016, SimQuest Solutions Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef SURGSIM_FRAMEWORK_LOGGERMANAGER_H
#define SURGSIM_FRAMEWORK_LOGGERMANAGER_H
#include <boost/thread/mutex.hpp>
#include <unordered_map>
#include <vector>
namespace SurgSim
{
namespace Framework
{
class Logger;
class LogOutput;
class LoggerManager
{
public:
LoggerManager();
~LoggerManager();
void setDefaultOutput(std::shared_ptr<LogOutput> output);
std::shared_ptr<LogOutput> getDefaultOutput() const;
std::shared_ptr<Logger> getDefaultLogger();
std::shared_ptr<Logger> getLogger(const std::string& name);
void setThreshold(int threshold);
void setThreshold(const std::string& path, int threshold);
int getThreshold() const;
private:
std::unordered_map<std::string, std::shared_ptr<Logger>> m_loggers;
std::vector<std::pair<std::string, int>> m_thresholds;
std::shared_ptr<LogOutput> m_defaultOutput;
int m_globalThreshold;
boost::mutex m_mutex;
// Aug 13, 2013
// VS2012 does not support "delete" now
LoggerManager(const LoggerManager&);
LoggerManager& operator=(const LoggerManager&);
};
}; // Framework
}; // SurgSim
#endif //SURGSIM_FRAMEWORK_LOGGERMANAGER_H
SurgSim
Definition: CompoundShapeToGraphics.cpp:29
SurgSim::Framework::LoggerManager::getThreshold
int getThreshold() const
Return the threshold used by all loggers.
Definition: LoggerManager.cpp:79
SurgSim::Framework::LoggerManager::m_loggers
std::unordered_map< std::string, std::shared_ptr< Logger > > m_loggers
Keep track of all the loggers.
Definition: LoggerManager.h:75
SurgSim::Framework::LoggerManager::m_globalThreshold
int m_globalThreshold
Threshold used by all loggers.
Definition: LoggerManager.h:84
SurgSim::Framework::LoggerManager::~LoggerManager
~LoggerManager()
Destructor.
Definition: LoggerManager.cpp:38
SurgSim::Framework::LoggerManager::m_mutex
boost::mutex m_mutex
Definition: LoggerManager.h:86
SurgSim::Framework::LoggerManager::m_defaultOutput
std::shared_ptr< LogOutput > m_defaultOutput
Use for default output of the logger.
Definition: LoggerManager.h:81
SurgSim::Framework::LoggerManager::setThreshold
void setThreshold(int threshold)
Sets a threshold for all loggers.
Definition: LoggerManager.cpp:54
SurgSim::Framework::LoggerManager::getLogger
std::shared_ptr< Logger > getLogger(const std::string &name)
Gets a logger with a given name, creates a new one if none exists or the logger has been deallocated...
Definition: LoggerManager.cpp:85
SurgSim::Framework::LoggerManager::getDefaultOutput
std::shared_ptr< LogOutput > getDefaultOutput() const
Return the default output.
Definition: LoggerManager.cpp:48
SurgSim::Framework::LoggerManager::setDefaultOutput
void setDefaultOutput(std::shared_ptr< LogOutput > output)
Sets/Changes default output.
Definition: LoggerManager.cpp:43
SurgSim::Framework::LoggerManager::LoggerManager
LoggerManager()
Constructor.
Definition: LoggerManager.cpp:30
SurgSim::Framework::LoggerManager::getDefaultLogger
std::shared_ptr< Logger > getDefaultLogger()
Gets the default logger.
Definition: LoggerManager.cpp:114
SurgSim::Framework::LoggerManager
Class to safely handle access to a group of loggers, manipulate the global logging threshold...
Definition: LoggerManager.h:33
SurgSim::Framework::LoggerManager::operator=
LoggerManager & operator=(const LoggerManager &)
SurgSim::Framework::LoggerManager::m_thresholds
std::vector< std::pair< std::string, int > > m_thresholds
Keep track of subgroup thresholds.
Definition: LoggerManager.h:78