|
|
Go to the documentation of this file.
98 constexpr
char dummy[] =
"dd-Mon-yyyy hh:mm:ss TZN ";
99 char ts[
sizeof(
dummy)];
103 strftime(ts,
sizeof(
dummy),
"%d-%b-%Y %H:%M:%S %Z", localtime_r(&
t, &timebuf));
106 #ifdef STRIP_TRAILING_BLANKS_IN_TIMEZONE
109 unsigned int b = strlen(ts);
110 while (ts[--
b] ==
' ') {
133 wantSubroutine(
true),
135 wantSomeContext(
true),
137 wantFullContext(
false),
138 wantTimeSeparate(
false),
139 wantEpilogueSeparate(
false),
142 #ifdef ELoutputCONSTRUCTOR_TRACE
143 std::cerr <<
"Constructor for ELoutput()\n";
146 emitToken(
"\n=================================================",
true);
147 emitToken(
"\nMessage Log File written by MessageLogger service \n");
148 emitToken(
"\n=================================================\n",
true);
159 wantSubroutine(
true),
161 wantSomeContext(
true),
163 wantFullContext(
false),
164 wantTimeSeparate(
false),
165 wantEpilogueSeparate(
false),
168 #ifdef ELoutputCONSTRUCTOR_TRACE
169 std::cerr <<
"Constructor for ELoutput( os )\n";
175 emitToken(
"\n=================================================",
true);
176 emitToken(
"\nMessage Log File written by MessageLogger service \n");
177 emitToken(
"\n=================================================\n",
true);
189 wantSubroutine(
true),
191 wantSomeContext(
true),
193 wantFullContext(
false),
194 wantTimeSeparate(
false),
195 wantEpilogueSeparate(
false),
198 #ifdef ELoutputCONSTRUCTOR_TRACE
204 #ifdef ELoutputCONSTRUCTOR_TRACE
205 std::cerr <<
" Testing if os is owned\n";
207 #ifdef ELoutputCONSTRUCTOR_TRACE
208 std::cerr <<
" About to do first emit\n";
212 emitToken(
"\n=======================================================",
true);
218 #ifdef ELoutputCONSTRUCTOR_TRACE
222 #ifdef ELoutputCONSTRUCTOR_TRACE
226 emitToken(
"\n=======================================================",
true);
227 emitToken(
"\n%MSG** Logging to cerr is being substituted");
230 emitToken(
"\" which could not be opened for write or append.\n");
236 emitToken(
"\n=======================================================\n",
true);
240 #ifdef ELoutputCONSTRUCTOR_TRACE
241 std::cerr <<
"Constructor for ELoutput completed.\n";
249 charsOnLine(orig.charsOnLine),
251 wantTimestamp(orig.wantTimestamp),
252 wantModule(orig.wantModule),
253 wantSubroutine(orig.wantSubroutine),
254 wantText(orig.wantText),
255 wantSomeContext(orig.wantSomeContext),
256 wantSerial(orig.wantSerial),
257 wantFullContext(orig.wantFullContext),
258 wantTimeSeparate(orig.wantTimeSeparate),
259 wantEpilogueSeparate(orig.wantEpilogueSeparate),
260 preambleMode(orig.preambleMode)
262 #ifdef ELoutputCONSTRUCTOR_TRACE
263 std::cerr <<
"Copy constructor for ELoutput\n";
283 #ifdef ELoutputCONSTRUCTOR_TRACE
284 std::cerr <<
"Destructor for ELoutput\n";
297 #ifdef ELoutputTRACE_LOG
298 std::cerr <<
" =:=:=: Log to an ELoutput \n";
304 std::cerr <<
" =:=:=: Log to an ELoutput \n"
307 <<
" id = " <<
xid.
id <<
"\n";
320 #ifdef ELoutputTRACE_LOG
321 std::cerr <<
" =:=:=: Limits table work done \n";
328 if (!
msg.is_verbatim()) {
338 #ifdef ELoutputTRACE_LOG
343 if (!
msg.is_verbatim()) {
345 std::ostringstream
s;
351 #ifdef OUTPUT_FORMATTED_ERROR_MESSAGES
355 ELlist_string::const_iterator it;
356 for (it =
msg.items().begin(); it !=
msg.items().end(); ++it) {
357 #ifdef ELoutputTRACE_LOG
358 std::cerr <<
" =:=:=: Item: " << *it <<
'\n';
367 bool needAspace =
true;
368 if (!
msg.is_verbatim()) {
394 #ifdef ELoutputTRACE_LOG
395 std::cerr <<
" =:=:=: Module and Subroutine done \n";
400 if (!
msg.is_verbatim()) {
415 #ifdef ELoutputTRACE_LOG
416 std::cerr <<
" =:=:=: TimeStamp done \n";
421 if (!
msg.is_verbatim()) {
430 #ifdef ELoutputTRACE_LOG
431 std::cerr <<
" =:=:=: fullContext done: \n";
435 #ifdef ELoutputTRACE_LOG
445 bool insertNewlineAfterHeader = (
msg.xid().severity !=
ELdebug);
448 if (!
msg.is_verbatim()) {
450 emitToken(
"\n", insertNewlineAfterHeader);
455 #ifdef ELoutputTRACE_LOG
456 std::cerr <<
" =:=:=: Trace routine done: \n";
459 #ifndef OUTPUT_FORMATTED_ERROR_MESSAGES
464 ELlist_string::const_iterator it;
466 for (it =
msg.items().begin(); it !=
msg.items().end(); ++it) {
467 #ifdef ELoutputTRACE_LOG
468 std::cerr <<
" =:=:=: Item: " << *it <<
'\n';
471 if (!
msg.is_verbatim()) {
472 if (!insertNewlineAfterHeader && (item_count == 3)) {
488 if (!
msg.is_verbatim()) {
498 #ifdef ELoutputTRACE_LOG
499 std::cerr <<
" =:=:=: log(msg) done: \n";
513 #ifdef ELoutput_EMIT_TRACE
515 std::cerr <<
"[][][] in emit: s.length() " <<
s.length() <<
'\n';
519 if (
s.length() == 0) {
521 (*os) <<
newline << std::flush;
529 second = (
s.length() < 2) ?
'\0' :
s[1];
530 last = (
s.length() < 2) ?
'\0' :
s[
s.length() - 1];
531 last2 = (
s.length() < 3) ?
'\0' :
s[
s.length() - 2];
538 #ifdef ELoutput_EMIT_TRACE
539 std::cerr <<
"[][][] in emit: about to << to *os \n";
541 #ifdef HEADERS_BROKEN_INTO_LINES_AND_INDENTED
553 (*os) <<
s.substr(1);
558 #ifdef ELoutput_EMIT_TRACE
559 std::cerr <<
"[][][] in emit: about to << s to *os: " <<
s <<
" \n";
565 if (
last ==
'\n' || last2 ==
'\n') {
573 (*os) <<
newline << std::flush;
584 #ifdef ELoutput_EMIT_TRACE
585 std::cerr <<
"[][][] in emit: completed \n";
627 emitToken(
"\n=======================================================",
true);
628 emitToken(
"\nError Log changed to this stream\n");
631 emitToken(
"\n=======================================================\n",
true);
636 emitToken(
"\n=======================================================",
true);
637 emitToken(
"\nError Log changed to this file\n");
640 emitToken(
"\n=======================================================\n",
true);
void useContext() override
void suppressSubroutine() override
void changeFile(std::ostream &os) override
bool log(const edm::ErrorObj &msg) override
std::unordered_set< std::string > respondToThese
void includeContext() override
messagelogger::ELseverityLevel threshold
U second(std::pair< T, U > const &p)
void includeSubroutine() override
void includeModule() override
void suppressSerial() override
T first(std::pair< T, U > const &p)
void suppressTime() override
messagelogger::ELseverityLevel severity
void includeSerial() override
void attachTime() override
std::shared_ptr< std::ostream > os
bool respondToMostModules
void emitToken(std::string_view s, bool nl=false)
const std::string & getSymbol() const
virtual bool thisShouldBeIgnored(std::string const &s) const
void separateTime() override
constexpr const ELseverityLevel ELsevere
bool add(const ELextendedID &xid)
void suppressContext() override
void attachEpilogue() override
void includeText() override
bool wantEpilogueSeparate
constexpr const ELseverityLevel ELdebug
messagelogger::ELseverityLevel traceThreshold
void suppressModule() override
void useFullContext() override
void suppressText() override
void includeTime() override
void separateEpilogue() override
std::unordered_set< std::string > ignoreThese