DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ers::StandardStreamOutput Struct Reference

#include <StandardStreamOutput.hpp>

Inheritance diagram for ers::StandardStreamOutput:
[legend]

Static Public Member Functions

static std::ostream & print (std::ostream &out, const Issue &issue, int verbosity)
static std::ostream & println (std::ostream &out, const Issue &issue, int verbosity)

Detailed Description

This class provides a namespace for the functions that can be used to print ERS issues to a standard C++ output stream.

Author
Serguei Kolos
Version
1.0

Definition at line 40 of file StandardStreamOutput.hpp.

Member Function Documentation

◆ print()

std::ostream & ers::StandardStreamOutput::print ( std::ostream & out,
const Issue & issue,
int verbosity )
static

Definition at line 68 of file StandardStreamOutput.cpp.

69{
70 if (verbosity > -3) {
71 out << formatted_time(issue) << " ";
72 }
73
74 if (verbosity > -2) {
75 out << ers::to_string(issue.severity()) << " ";
76 }
77
78 if (verbosity > -1) {
79 out << "[" << issue.context().position(verbosity) << "] ";
80 }
81
82 out << issue.message();
83
84 if (verbosity > 1) {
85 out << FIELD_SEPARATOR << "Parameters = ";
86 for (ers::string_map::const_iterator it = issue.parameters().begin(); it != issue.parameters().end(); ++it) {
87 out << "'" << it->first << "=" << it->second << "' ";
88 }
89
90 out << FIELD_SEPARATOR << "Qualifiers = ";
91 for (std::vector<std::string>::const_iterator it = issue.qualifiers().begin(); it != issue.qualifiers().end();
92 ++it) {
93 out << "'" << *it << "' ";
94 }
95 }
96
97 if (verbosity > 2) {
98 out << FIELD_SEPARATOR << "host = " << issue.context().host_name() << FIELD_SEPARATOR
99 << "user = " << issue.context().user_name() << " (" << issue.context().user_id() << ")" << FIELD_SEPARATOR
100 << "process id = " << issue.context().process_id() << FIELD_SEPARATOR
101 << "thread id = " << issue.context().thread_id() << FIELD_SEPARATOR << "process wd = " << issue.context().cwd();
102 }
103
104 if (verbosity > 3) {
105 std::ios_base::fmtflags flags(out.flags());
106
107 out << std::left;
108 std::vector<std::string> stack = issue.context().stack();
109 out << FIELD_SEPARATOR << "stack trace of the crashing thread:";
110 for (size_t i = 0; i < stack.size(); i++) {
111 out << FIELD_SEPARATOR << " #" << std::setw(3) << i << stack[i];
112 }
113 // restore the original state
114 out.flags(flags);
115 }
116
117 if (issue.cause()) {
118 out << FIELD_SEPARATOR << "was caused by: " << *issue.cause();
119 }
120
121 return out;
122}
#define FIELD_SEPARATOR
FELIX Initialization std::string initerror FELIX queue timed out
std::string to_string(severity s)

◆ println()

std::ostream & ers::StandardStreamOutput::println ( std::ostream & out,
const Issue & issue,
int verbosity )
static

Definition at line 60 of file StandardStreamOutput.cpp.

61{
62 print(out, issue, verbosity);
63 out << std::endl;
64 return out;
65}
static std::ostream & print(std::ostream &out, const Issue &issue, int verbosity)

The documentation for this struct was generated from the following files: