MCPcopy Create free account
hub / github.com/NVIDIA/TensorRT / LogStreamConsumer

Class LogStreamConsumer

quickstart/common/logging.h:133–181  ·  view source on GitHub ↗

\class LogStreamConsumer \brief Convenience object used to facilitate use of C++ stream syntax when logging messages. Order of base classes is LogStreamConsumerBase and then std::ostream. This is because the LogStreamConsumerBase class is used to initialize the LogStreamConsumerBuffer member field in LogStreamConsumer and then the address of the buffer is passed to std::ostream. This is necessary

Source from the content-addressed store, hash-verified

131//! Please do not change the order of the parent classes.
132//!
133class LogStreamConsumer : protected LogStreamConsumerBase, public std::ostream
134{
135public:
136 //! \brief Creates a LogStreamConsumer which logs messages with level severity.
137 //! Reportable severity determines if the messages are severe enough to be logged.
138 LogStreamConsumer(Severity reportableSeverity, Severity severity)
139 : LogStreamConsumerBase(severityOstream(severity), severityPrefix(severity), severity <= reportableSeverity)
140 , std::ostream(&mBuffer) // links the stream buffer with the stream
141 , mShouldLog(severity <= reportableSeverity)
142 , mSeverity(severity)
143 {
144 }
145
146 LogStreamConsumer(LogStreamConsumer&& other)
147 : LogStreamConsumerBase(severityOstream(other.mSeverity), severityPrefix(other.mSeverity), other.mShouldLog)
148 , std::ostream(&mBuffer) // links the stream buffer with the stream
149 , mShouldLog(other.mShouldLog)
150 , mSeverity(other.mSeverity)
151 {
152 }
153
154 void setReportableSeverity(Severity reportableSeverity)
155 {
156 mShouldLog = mSeverity <= reportableSeverity;
157 mBuffer.setShouldLog(mShouldLog);
158 }
159
160private:
161 static std::ostream& severityOstream(Severity severity)
162 {
163 return severity >= Severity::kINFO ? std::cout : std::cerr;
164 }
165
166 static std::string severityPrefix(Severity severity)
167 {
168 switch (severity)
169 {
170 case Severity::kINTERNAL_ERROR: return "[F] ";
171 case Severity::kERROR: return "[E] ";
172 case Severity::kWARNING: return "[W] ";
173 case Severity::kINFO: return "[I] ";
174 case Severity::kVERBOSE: return "[V] ";
175 default: assert(0); return "";
176 }
177 }
178
179 bool mShouldLog;
180 Severity mSeverity;
181};
182
183//! \class Logger
184//!

Callers 6

logMethod · 0.70
LOG_VERBOSEFunction · 0.70
LOG_INFOFunction · 0.70
LOG_WARNFunction · 0.70
LOG_ERRORFunction · 0.70
LOG_FATALFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected