a receiver of debugs() messages (e.g., stderr or cache.log) More...


Classes | |
class | Logger |
output iterator for writing CompiledDebugMessages to a given channel More... | |
Public Types | |
using | EarlyMessages = std::unique_ptr< CompiledDebugMessages > |
Public Member Functions | |
DebugChannel (const char *aName) | |
virtual | ~DebugChannel ()=default |
DebugChannel (DebugChannel &&)=delete | |
bool | collectingEarlyMessages () const |
whether we are still expecting (and buffering) early messages More... | |
void | stopEarlyMessageCollection () |
end early message buffering, logging any saved messages More... | |
EarlyMessages | releaseEarlyMessages () |
void | log (const DebugMessageHeader &, const CompiledDebugMessageBody &) |
Protected Member Functions | |
virtual bool | shouldWrite (const DebugMessageHeader &) const =0 |
virtual void | write (const DebugMessageHeader &, const CompiledDebugMessageBody &)=0 |
write the corresponding debugs() message into the channel More... | |
void | saveMessage (const DebugMessageHeader &, const CompiledDebugMessageBody &) |
stores the given early message (if possible) or forgets it (otherwise) More... | |
void | writeToStream (FILE &, const DebugMessageHeader &, const CompiledDebugMessageBody &) |
Formats a validated debugs() record and writes it to the given FILE. More... | |
void | noteWritten (const DebugMessageHeader &) |
reacts to a written a debugs() message More... | |
Static Protected Member Functions | |
static void | StopSavingAndLog (DebugChannel &, DebugChannel *=nullptr) |
stop saving and log() any "early" messages, in recordNumber order More... | |
Protected Attributes | |
const char *const | name = nullptr |
unique channel label for debugging More... | |
DebugRecordCount | written = 0 |
the number of messages sent to the underlying channel so far More... | |
DebugRecordCount | lastWrittenRecordNumber = 0 |
DebugMessageHeader::recordNumber of the last message we wrote. More... | |
EarlyMessages | earlyMessages |
Detailed Description
Member Typedef Documentation
◆ EarlyMessages
using DebugChannel::EarlyMessages = std::unique_ptr<CompiledDebugMessages> |
Constructor & Destructor Documentation
◆ DebugChannel() [1/2]
◆ ~DebugChannel()
|
virtualdefault |
◆ DebugChannel() [2/2]
|
delete |
Member Function Documentation
◆ collectingEarlyMessages()
|
inline |
Definition at line 158 of file debug.cc.
References earlyMessages.
Referenced by DebugModule::prepareToDie().
◆ log()
void DebugChannel::log | ( | const DebugMessageHeader & | header, |
const CompiledDebugMessageBody & | body | ||
) |
Write the message to the channel if the channel accepts (such) messages. This writing may be delayed until the channel configuration is settled.
Definition at line 535 of file debug.cc.
References lastWrittenRecordNumber, DebugMessageHeader::recordNumber, saveMessage(), shouldWrite(), stopEarlyMessageCollection(), and write().
Referenced by DebugModule::log().
◆ noteWritten()
|
protected |
Definition at line 621 of file debug.cc.
References lastWrittenRecordNumber, DebugMessageHeader::recordNumber, and written.
Referenced by writeToStream().
◆ releaseEarlyMessages()
|
inline |
end early message buffering, without logging any saved messages
- Returns
- (a possibly empty container with) saved messages or nil
Definition at line 165 of file debug.cc.
References earlyMessages.
Referenced by StopSavingAndLog().
◆ saveMessage()
|
protected |
Definition at line 592 of file debug.cc.
References assert, earlyMessages, EarlyMessagesLevel, and DebugMessageHeader::level.
Referenced by log().
◆ shouldWrite()
|
protectedpure virtual |
whether we should write() the corresponding debugs() message now (assumes some higher-level code applied cache.log section/level filter)
Implemented in SyslogChannel, StderrChannel, and CacheLogChannel.
Referenced by log().
◆ stopEarlyMessageCollection()
void DebugChannel::stopEarlyMessageCollection | ( | ) |
Definition at line 527 of file debug.cc.
References earlyMessages, and StopSavingAndLog().
Referenced by log(), DebugModule::prepareToDie(), Debug::SettleStderr(), Debug::SettleSyslog(), Debug::StopCacheLogUse(), and DebugModule::useCacheLog().
◆ StopSavingAndLog()
|
staticprotected |
Definition at line 567 of file debug.cc.
References assert, debugs, CompiledDebugMessage::header, name, DebugMessageHeader::recordNumber, releaseEarlyMessages(), and written.
Referenced by stopEarlyMessageCollection(), and StderrChannel::takeOver().
◆ write()
|
protectedpure virtual |
Implemented in SyslogChannel, StderrChannel, and CacheLogChannel.
Referenced by log().
◆ writeToStream()
|
protected |
Definition at line 611 of file debug.cc.
References debugLogTime(), noteWritten(), ProcessLabel, and DebugMessageHeader::timestamp.
Referenced by CacheLogChannel::write(), and StderrChannel::write().
Member Data Documentation
◆ earlyMessages
|
protected |
debugs() messages waiting for the channel configuration to settle (and the channel to open) so that their eligibility for logging can be determined (and the messages can be actually written somewhere)
Definition at line 233 of file debug.cc.
Referenced by collectingEarlyMessages(), releaseEarlyMessages(), saveMessage(), and stopEarlyMessageCollection().
◆ lastWrittenRecordNumber
|
protected |
Definition at line 228 of file debug.cc.
Referenced by log(), and noteWritten().
◆ name
|
protected |
Definition at line 222 of file debug.cc.
Referenced by StopSavingAndLog().
◆ written
|
protected |
Definition at line 225 of file debug.cc.
Referenced by noteWritten(), and StopSavingAndLog().
The documentation for this class was generated from the following file:
- src/debug/debug.cc