MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/application/log/AttachLoggerInitializer.cpp

33 lines
1.1 KiB
C++

/*
* AttachLogger.cpp
*
* Created on: 23 èþë. 2020 ã.
* Author: LeonidTitov
*/
#include "AttachLogger.hh"
application::log::AttachLogger::AttachLogger( const Links & links, const Setting & setting ) : links(links), setting(setting) {}
bool application::log::AttachLogger::input( Environment & env ) {
return grab( loggable, env.rholder.getShared<logging::ILoggable>( links.loggable ) )
and ( handler = env.rholder.getShared<logging::ILogHandler>( links.handler ) )
and grab( provider, env.rholder.getShared<logging::LoggerProviderMethods>( links.provider ) );
}
void application::log::AttachLogger::build( Environment & env ) {
Local<logging::LoggerProviderMethods> local_provider( provider, *env.rholder.getShared<logging::LoggerProviderMethods>( links.provider ) );
typedef logging::Logger Logger;
uint16_t permission_policy = (setting.allow_information_log << 2) | (setting.allow_critical_log << 1) | setting.allow_error_log;
Logger * logger = local_provider->get_logger( links.loggable, permission_policy, &env.static_object_ma);
logger->add_handler(handler);
loggable->add_logger(logger);
}