Added Logger::getBackend<T>() method
This commit is contained in:
parent
e6c6209991
commit
5d3daabaef
@ -71,6 +71,8 @@ namespace Opm {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool Logger::enabledMessageType( int64_t messageType) const {
|
||||
if (isPower2( messageType)) {
|
||||
if ((messageType & m_enabledTypes) == 0)
|
||||
|
@ -32,11 +32,24 @@ class Logger {
|
||||
public:
|
||||
Logger();
|
||||
void addMessage(int64_t messageType , const std::string& message) const;
|
||||
void addBackend(const std::string& name , std::shared_ptr<LogBackend> backend);
|
||||
bool hasBackend(const std::string& name);
|
||||
|
||||
bool enabledMessageType( int64_t messageType) const;
|
||||
void addMessageType( int64_t messageType , const std::string& prefix);
|
||||
|
||||
void addBackend(const std::string& name , std::shared_ptr<LogBackend> backend);
|
||||
bool hasBackend(const std::string& name);
|
||||
|
||||
|
||||
template <class BackendType>
|
||||
std::shared_ptr<BackendType> getBackend(const std::string& name) const {
|
||||
auto pair = m_backends.find( name );
|
||||
if (pair == m_backends.end())
|
||||
throw std::invalid_argument("Invalid backend name: " + name);
|
||||
else
|
||||
return std::static_pointer_cast<BackendType>(m_backends.find(name)->second);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
void updateGlobalMask( int64_t mask );
|
||||
|
||||
|
@ -81,11 +81,20 @@ BOOST_AUTO_TEST_CASE(Test_Logger) {
|
||||
|
||||
logger.addMessage( Log::MessageType::Error , "Error");
|
||||
logger.addMessage( Log::MessageType::Warning , "Warning");
|
||||
BOOST_CHECK_EQUAL( 1 , counter->numWarnings() );
|
||||
BOOST_CHECK_EQUAL( 1 , counter->numErrors() );
|
||||
BOOST_CHECK_EQUAL( 0 , counter->numNotes() );
|
||||
BOOST_CHECK_EQUAL( 1U , counter->numWarnings() );
|
||||
BOOST_CHECK_EQUAL( 1U , counter->numErrors() );
|
||||
BOOST_CHECK_EQUAL( 0U , counter->numNotes() );
|
||||
|
||||
BOOST_CHECK_EQUAL( log_stream.str() , "Warning\n");
|
||||
|
||||
|
||||
BOOST_CHECK_THROW( logger.getBackend<LogBackend>("No") , std::invalid_argument );
|
||||
{
|
||||
auto counter2 = logger.getBackend<MessageCounter>("COUNTER");
|
||||
BOOST_CHECK_EQUAL( 1U , counter2->numWarnings() );
|
||||
BOOST_CHECK_EQUAL( 1U , counter2->numErrors() );
|
||||
BOOST_CHECK_EQUAL( 0U , counter2->numNotes() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user