33 lines
1.1 KiB
C++
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);
|
||
|
||
}
|