diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:17 +0300 |
commit | d3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch) | |
tree | dd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/logger/log.cpp | |
parent | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff) | |
download | ydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/logger/log.cpp')
-rw-r--r-- | library/cpp/logger/log.cpp | 228 |
1 files changed, 114 insertions, 114 deletions
diff --git a/library/cpp/logger/log.cpp b/library/cpp/logger/log.cpp index 33cfff57c0..e1d70cc3d2 100644 --- a/library/cpp/logger/log.cpp +++ b/library/cpp/logger/log.cpp @@ -2,16 +2,16 @@ #include "uninitialized_creator.h" #include "filter.h" #include "null.h" -#include "stream.h" +#include "stream.h" #include "thread.h" - -#include <util/string/cast.h> -#include <util/stream/printf.h> -#include <util/system/yassert.h> + +#include <util/string/cast.h> +#include <util/stream/printf.h> +#include <util/system/yassert.h> #include <util/generic/string.h> -#include <util/generic/scope.h> -#include <util/generic/yexception.h> - +#include <util/generic/scope.h> +#include <util/generic/yexception.h> + THolder<TLogBackend> CreateLogBackend(const TString& fname, ELogPriority priority, bool threaded) { TLogBackendCreatorUninitialized creator; creator.InitCustom(fname, priority, threaded); @@ -26,38 +26,38 @@ THolder<TOwningThreadedLogBackend> CreateOwningThreadedLogBackend(const TString& return MakeHolder<TOwningThreadedLogBackend>(CreateLogBackend(fname, LOG_MAX_PRIORITY, false).Release(), queueLen); } -class TLog::TImpl: public TAtomicRefCount<TImpl> { +class TLog::TImpl: public TAtomicRefCount<TImpl> { class TPriorityLogStream final: public IOutputStream { - public: + public: inline TPriorityLogStream(ELogPriority p, const TImpl* parent) - : Priority_(p) - , Parent_(parent) - { - } - - void DoWrite(const void* buf, size_t len) override { - Parent_->WriteData(Priority_, (const char*)buf, len); - } - - private: + : Priority_(p) + , Parent_(parent) + { + } + + void DoWrite(const void* buf, size_t len) override { + Parent_->WriteData(Priority_, (const char*)buf, len); + } + + private: ELogPriority Priority_ = LOG_DEF_PRIORITY; const TImpl* Parent_ = nullptr; - }; - -public: + }; + +public: inline TImpl(THolder<TLogBackend> backend) : Backend_(std::move(backend)) - { - } - - inline void ReopenLog() { - if (!IsOpen()) { - return; - } - + { + } + + inline void ReopenLog() { + if (!IsOpen()) { + return; + } + Backend_->ReopenLog(); - } - + } + inline void ReopenLogNoFlush() { if (!IsOpen()) { return; @@ -67,133 +67,133 @@ public: } inline void AddLog(ELogPriority priority, const char* format, va_list args) const { - if (!IsOpen()) { - return; + if (!IsOpen()) { + return; } - TPriorityLogStream ls(priority, this); + TPriorityLogStream ls(priority, this); + + Printf(ls, format, args); + } - Printf(ls, format, args); - } - inline void ResetBackend(THolder<TLogBackend> backend) noexcept { Backend_ = std::move(backend); - } - + } + inline THolder<TLogBackend> ReleaseBackend() noexcept { return std::move(Backend_); - } - - inline bool IsNullLog() const noexcept { + } + + inline bool IsNullLog() const noexcept { return !IsOpen() || (dynamic_cast<TNullLogBackend*>(Backend_.Get()) != nullptr); - } - - inline bool IsOpen() const noexcept { + } + + inline bool IsOpen() const noexcept { return nullptr != Backend_.Get(); - } + } - inline void CloseLog() noexcept { + inline void CloseLog() noexcept { Backend_.Destroy(); - Y_ASSERT(!IsOpen()); - } - + Y_ASSERT(!IsOpen()); + } + inline void WriteData(ELogPriority priority, const char* data, size_t len) const { - if (IsOpen()) { + if (IsOpen()) { Backend_->WriteData(TLogRecord(priority, data, len)); } - } + } inline ELogPriority DefaultPriority() noexcept { - return DefaultPriority_; - } + return DefaultPriority_; + } inline void SetDefaultPriority(ELogPriority priority) noexcept { - DefaultPriority_ = priority; - } - + DefaultPriority_ = priority; + } + inline ELogPriority FiltrationLevel() const noexcept { return Backend_->FiltrationLevel(); - } - + } + inline size_t BackEndQueueSize() const { return Backend_->QueueSize(); } -private: +private: THolder<TLogBackend> Backend_; ELogPriority DefaultPriority_ = LOG_DEF_PRIORITY; -}; - -TLog::TLog() +}; + +TLog::TLog() : Impl_(MakeIntrusive<TImpl>(nullptr)) -{ -} - +{ +} + TLog::TLog(const TString& fname, ELogPriority priority) : TLog(CreateLogBackend(fname, priority, false)) { -} - +} + TLog::TLog(THolder<TLogBackend> backend) : Impl_(MakeIntrusive<TImpl>(std::move(backend))) -{ -} - +{ +} + TLog::TLog(const TLog&) = default; TLog::TLog(TLog&&) = default; TLog::~TLog() = default; TLog& TLog::operator=(const TLog&) = default; TLog& TLog::operator=(TLog&&) = default; - + bool TLog::IsOpen() const noexcept { - return Impl_->IsOpen(); -} - + return Impl_->IsOpen(); +} + void TLog::AddLog(const char* format, ...) const { - va_list args; - va_start(args, format); - - Y_DEFER { - va_end(args); - }; - - Impl_->AddLog(Impl_->DefaultPriority(), format, args); -} - + va_list args; + va_start(args, format); + + Y_DEFER { + va_end(args); + }; + + Impl_->AddLog(Impl_->DefaultPriority(), format, args); +} + void TLog::AddLog(ELogPriority priority, const char* format, ...) const { va_list args; va_start(args, format); - Y_DEFER { + Y_DEFER { va_end(args); - }; + }; - Impl_->AddLog(priority, format, args); + Impl_->AddLog(priority, format, args); } void TLog::AddLogVAList(const char* format, va_list lst) { - Impl_->AddLog(Impl_->DefaultPriority(), format, lst); -} - -void TLog::ReopenLog() { + Impl_->AddLog(Impl_->DefaultPriority(), format, lst); +} + +void TLog::ReopenLog() { if (const auto copy = Impl_) { copy->ReopenLog(); } -} - +} + void TLog::ReopenLogNoFlush() { if (const auto copy = Impl_) { copy->ReopenLogNoFlush(); } } -void TLog::CloseLog() { - Impl_->CloseLog(); -} - +void TLog::CloseLog() { + Impl_->CloseLog(); +} + void TLog::SetDefaultPriority(ELogPriority priority) noexcept { - Impl_->SetDefaultPriority(priority); + Impl_->SetDefaultPriority(priority); } ELogPriority TLog::FiltrationLevel() const noexcept { @@ -201,23 +201,23 @@ ELogPriority TLog::FiltrationLevel() const noexcept { } ELogPriority TLog::DefaultPriority() const noexcept { - return Impl_->DefaultPriority(); -} - + return Impl_->DefaultPriority(); +} + bool TLog::OpenLog(const char* path, ELogPriority lp) { - if (path) { + if (path) { ResetBackend(CreateLogBackend(path, lp)); - } else { + } else { ResetBackend(MakeHolder<TStreamLogBackend>(&Cerr)); - } - - return true; -} - + } + + return true; +} + void TLog::ResetBackend(THolder<TLogBackend> backend) noexcept { Impl_->ResetBackend(std::move(backend)); -} - +} + bool TLog::IsNullLog() const noexcept { return Impl_->IsNullLog(); } @@ -241,7 +241,7 @@ void TLog::Write(ELogPriority priority, const TStringBuf data) const { void TLog::Write(const char* data, size_t len) const { Write(Impl_->DefaultPriority(), data, len); -} +} void TLog::SetFormatter(TLogFormatter formatter) noexcept { Formatter_ = std::move(formatter); |