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);
|
|
|
|
}
|