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 29 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 67 of file StandardStreamOutput.cpp.

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

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

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