82 auto value =
level_.load(std::memory_order_acquire);
165 std::vector<std::shared_ptr<LogHandler>>
getHandlers()
const;
170 void replaceHandlers(std::vector<std::shared_ptr<LogHandler>> handlers);
184 std::shared_ptr<LogHandler>,
185 std::shared_ptr<LogHandler>>& handlerMap);
228 "The FLAG_INHERIT bit must not be set in any valid LogLevel value");
folly::Synchronized< std::vector< std::shared_ptr< LogHandler > > > handlers_
LogCategory(LoggerDB *db)
std::atomic< uint32_t > level_
void processMessage(const LogMessage &message) const
std::vector< std::atomic< LogLevel > * > xlogLevels_
void setLevelLocked(LogLevel level, bool inherit)
—— Concurrent Priority Queue Implementation ——
void handler(int, siginfo_t *, void *)
LogCategory * firstChild_
std::pair< LogLevel, bool > getLevelInfo() const
void setLevel(LogLevel level, bool inherit=true)
const std::string & getName() const
LogLevel getEffectiveLevelRelaxed() const
LogLevel getLevel() const
LogCategory & operator=(LogCategory const &)=delete
void updateHandlers(const std::unordered_map< std::shared_ptr< LogHandler >, std::shared_ptr< LogHandler >> &handlerMap)
bool logCheck(LogLevel level) const
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
std::vector< std::shared_ptr< LogHandler > > getHandlers() const
LogLevel getEffectiveLevel() const
void replaceHandlers(std::vector< std::shared_ptr< LogHandler >> handlers)
std::atomic< LogLevel > effectiveLevel_
LogCategory *const parent_
LogCategory * nextSibling_
void addHandler(std::shared_ptr< LogHandler > handler)
void updateEffectiveLevel(LogLevel newEffectiveLevel)
void admitMessage(const LogMessage &message) const
void parentLevelUpdated(LogLevel parentEffectiveLevel)
folly::Function< void()> parent
void registerXlogLevel(std::atomic< LogLevel > *levelPtr)