diff options
author | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
---|---|---|
committer | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
commit | b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806 (patch) | |
tree | 2a23209faf0fea5586a6d4b9cee60d1b318d29fe /library/cpp/yt/logging/logger.cpp | |
parent | 559174a9144de40d6bb3997ea4073c82289b4974 (diff) | |
download | ydb-b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806.tar.gz |
remove kikimr/driver DEPENDS
Diffstat (limited to 'library/cpp/yt/logging/logger.cpp')
-rw-r--r-- | library/cpp/yt/logging/logger.cpp | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/library/cpp/yt/logging/logger.cpp b/library/cpp/yt/logging/logger.cpp deleted file mode 100644 index 7f6f217d86..0000000000 --- a/library/cpp/yt/logging/logger.cpp +++ /dev/null @@ -1,249 +0,0 @@ -#include "logger.h" - -#include <library/cpp/yt/assert/assert.h> - -#include <library/cpp/yt/cpu_clock/clock.h> - -#include <util/system/compiler.h> -#include <util/system/thread.h> - -namespace NYT::NLogging { - -//////////////////////////////////////////////////////////////////////////////// - -namespace NDetail { - -TSharedRef TMessageStringBuilder::Flush() -{ - return Buffer_.Slice(0, GetLength()); -} - -void TMessageStringBuilder::DisablePerThreadCache() -{ - Cache_ = nullptr; - CacheDestroyed_ = true; -} - -void TMessageStringBuilder::DoReset() -{ - Buffer_.Reset(); -} - -void TMessageStringBuilder::DoReserve(size_t newCapacity) -{ - auto oldLength = GetLength(); - newCapacity = FastClp2(newCapacity); - - auto newChunkSize = std::max(ChunkSize, newCapacity); - // Hold the old buffer until the data is copied. - auto oldBuffer = std::move(Buffer_); - auto* cache = GetCache(); - if (Y_LIKELY(cache)) { - auto oldCapacity = End_ - Begin_; - auto deltaCapacity = newCapacity - oldCapacity; - if (End_ == cache->Chunk.Begin() + cache->ChunkOffset && - cache->ChunkOffset + deltaCapacity <= cache->Chunk.Size()) - { - // Resize inplace. - Buffer_ = cache->Chunk.Slice(cache->ChunkOffset - oldCapacity, cache->ChunkOffset + deltaCapacity); - cache->ChunkOffset += deltaCapacity; - End_ = Begin_ + newCapacity; - return; - } - - if (Y_UNLIKELY(cache->ChunkOffset + newCapacity > cache->Chunk.Size())) { - cache->Chunk = TSharedMutableRef::Allocate<TMessageBufferTag>(newChunkSize, {.InitializeStorage = false}); - cache->ChunkOffset = 0; - } - - Buffer_ = cache->Chunk.Slice(cache->ChunkOffset, cache->ChunkOffset + newCapacity); - cache->ChunkOffset += newCapacity; - } else { - Buffer_ = TSharedMutableRef::Allocate<TMessageBufferTag>(newChunkSize, {.InitializeStorage = false}); - newCapacity = newChunkSize; - } - if (oldLength > 0) { - ::memcpy(Buffer_.Begin(), Begin_, oldLength); - } - Begin_ = Buffer_.Begin(); - End_ = Begin_ + newCapacity; -} - -TMessageStringBuilder::TPerThreadCache* TMessageStringBuilder::GetCache() -{ - if (Y_LIKELY(Cache_)) { - return Cache_; - } - if (CacheDestroyed_) { - return nullptr; - } - static thread_local TPerThreadCache Cache; - Cache_ = &Cache; - return Cache_; -} - -TMessageStringBuilder::TPerThreadCache::~TPerThreadCache() -{ - TMessageStringBuilder::DisablePerThreadCache(); -} - -thread_local TMessageStringBuilder::TPerThreadCache* TMessageStringBuilder::Cache_; -thread_local bool TMessageStringBuilder::CacheDestroyed_; - -} // namespace NDetail - -//////////////////////////////////////////////////////////////////////////////// - -Y_WEAK TLoggingContext GetLoggingContext() -{ - return { - .Instant = GetCpuInstant(), - .ThreadId = TThread::CurrentThreadId(), - .ThreadName = GetLoggingThreadName(), - }; -} - -Y_WEAK ILogManager* GetDefaultLogManager() -{ - return nullptr; -} - -//////////////////////////////////////////////////////////////////////////////// - -TLoggingThreadName GetLoggingThreadName() -{ - static thread_local TLoggingThreadName loggingThreadName; - if (loggingThreadName.Length == 0) { - if (auto name = TThread::CurrentThreadName()) { - auto length = std::min(TLoggingThreadName::BufferCapacity - 1, static_cast<int>(name.length())); - loggingThreadName.Length = length; - ::memcpy(loggingThreadName.Buffer.data(), name.data(), length); - } - } - return loggingThreadName; -} - -//////////////////////////////////////////////////////////////////////////////// - -TLogger::TLogger(ILogManager* logManager, TStringBuf categoryName) - : LogManager_(logManager) - , Category_(LogManager_ ? LogManager_->GetCategory(categoryName) : nullptr) - , MinLevel_(LogManager_ ? LoggerDefaultMinLevel : NullLoggerMinLevel) -{ } - -TLogger::TLogger(TStringBuf categoryName) - : TLogger(GetDefaultLogManager(), categoryName) -{ } - -TLogger::operator bool() const -{ - return LogManager_; -} - -const TLoggingCategory* TLogger::GetCategory() const -{ - return Category_; -} - -bool TLogger::IsLevelEnabledHeavy(ELogLevel level) const -{ - // Note that we managed to reach this point, i.e. level >= MinLevel_, - // which implies that MinLevel_ != ELogLevel::Maximum, so this logger was not - // default constructed, thus it has non-trivial category. - YT_ASSERT(Category_); - - if (Category_->CurrentVersion != Category_->ActualVersion->load(std::memory_order::relaxed)) { - LogManager_->UpdateCategory(const_cast<TLoggingCategory*>(Category_)); - } - - return level >= Category_->MinPlainTextLevel; -} - -bool TLogger::GetAbortOnAlert() const -{ - return LogManager_->GetAbortOnAlert(); -} - -bool TLogger::IsEssential() const -{ - return Essential_; -} - -void TLogger::UpdateAnchor(TLoggingAnchor* anchor) const -{ - LogManager_->UpdateAnchor(anchor); -} - -void TLogger::RegisterStaticAnchor(TLoggingAnchor* anchor, ::TSourceLocation sourceLocation, TStringBuf message) const -{ - LogManager_->RegisterStaticAnchor(anchor, sourceLocation, message); -} - -void TLogger::Write(TLogEvent&& event) const -{ - LogManager_->Enqueue(std::move(event)); -} - -void TLogger::AddRawTag(const TString& tag) -{ - if (!Tag_.empty()) { - Tag_ += ", "; - } - Tag_ += tag; -} - -TLogger TLogger::WithRawTag(const TString& tag) const -{ - auto result = *this; - result.AddRawTag(tag); - return result; -} - -TLogger TLogger::WithEssential(bool essential) const -{ - auto result = *this; - result.Essential_ = essential; - return result; -} - -TLogger TLogger::WithMinLevel(ELogLevel minLevel) const -{ - auto result = *this; - if (result) { - result.MinLevel_ = minLevel; - } - return result; -} - -const TString& TLogger::GetTag() const -{ - return Tag_; -} - -const TLogger::TStructuredTags& TLogger::GetStructuredTags() const -{ - return StructuredTags_; -} - -//////////////////////////////////////////////////////////////////////////////// - -void LogStructuredEvent( - const TLogger& logger, - NYson::TYsonString message, - ELogLevel level) -{ - YT_VERIFY(message.GetType() == NYson::EYsonType::MapFragment); - auto loggingContext = GetLoggingContext(); - auto event = NDetail::CreateLogEvent( - loggingContext, - logger, - level); - event.MessageKind = ELogMessageKind::Structured; - event.MessageRef = message.ToSharedRef(); - event.Family = ELogFamily::Structured; - logger.Write(std::move(event)); -} - -//////////////////////////////////////////////////////////////////////////////// - -} // namespace NYT::NLogging |