#include "global.h" static void DoInitGlobalLog(THolder logger, THolder formatter) { TLoggerOperator::Set(logger.Release()); if (!formatter) { formatter.Reset(CreateRtyLoggerFormatter()); } TLoggerFormatterOperator::Set(formatter.Release()); } void DoInitGlobalLog(const TString& logType, const int logLevel, const bool rotation, const bool startAsDaemon, THolder formatter, bool threaded) { DoInitGlobalLog( MakeHolder( CreateLogBackend( NLoggingImpl::PrepareToOpenLog(logType, logLevel, rotation, startAsDaemon), (ELogPriority)logLevel, threaded)), std::move(formatter)); } void DoInitGlobalLog(THolder backend, THolder formatter) { DoInitGlobalLog(THolder(new TGlobalLog(std::move(backend))), std::move(formatter)); } bool GlobalLogInitialized() { return TLoggerOperator::Usage(); } template <> TGlobalLog* CreateDefaultLogger() { return new TGlobalLog("console", TLOG_INFO); } template <> TNullLog* CreateDefaultLogger() { return new TNullLog("null"); } NPrivateGlobalLogger::TVerifyEvent::~TVerifyEvent() { const TString info = Str(); FATAL_LOG << info << Endl; Y_ABORT("%s", info.data()); }