1 #include "cetlib/PluginTypeDeducer.h"
2 #include "fhiclcpp/ParameterSet.h"
4 #include "messagefacility/MessageService/ELdestination.h"
5 #include "messagefacility/Utilities/ELseverityLevel.h"
6 #include "messagefacility/Utilities/exception.h"
9 #include "cetlib/compiler_macros.h"
12 using mf::ELseverityLevel;
14 using mf::service::ELdestination;
31 fhicl::Name{
"bell_on_error"}, fhicl::Comment{
"Whether to ring the system bell on error messages"},
true};
34 fhicl::Atom<bool>{fhicl::Name{
"blink_error_messages"},
35 fhicl::Comment{
"Whether to print error messages with blinking text"},
false};
37 fhicl::Atom<std::string>
errorColor = fhicl::Atom<std::string>{
38 fhicl::Name{
"error_ansi_color"}, fhicl::Comment{
"ANSI Color string for Error Messages"},
"\033[1m\033[91m"};
41 fhicl::Name{
"warning_ansi_color"}, fhicl::Comment{
"ANSI Color string for Warning Messages"},
"\033[1m\033[93m"};
43 fhicl::Atom<std::string>
infoColor = fhicl::Atom<std::string>{
44 fhicl::Name{
"info_ansi_color"}, fhicl::Comment{
"ANSI Color string for Info Messages"},
"\033[92m"};
46 fhicl::Atom<std::string>
debugColor = fhicl::Atom<std::string>{
47 fhicl::Name{
"debug_ansi_color"}, fhicl::Comment{
"ANSI Color string for Debug Messages"},
"\033[39m"};
64 void routePayload(
const std::ostringstream& o,
const ErrorObj& msg)
override;
69 std::string errorColor_;
70 std::string warningColor_;
71 std::string infoColor_;
72 std::string debugColor_;
84 : ELdestination(pset().elDestConfig()), bellError_(pset().bellOnError()), blinkError_(pset().blinkOnError()), errorColor_(pset().errorColor()), warningColor_(pset().warningColor()), infoColor_(pset().infoColor()), debugColor_(pset().debugColor())
94 const auto& xid = msg.xid();
95 auto level = xid.severity().getLevel();
99 case mf::ELseverityLevel::ELsev_success:
100 case mf::ELseverityLevel::ELsev_zeroSeverity:
101 case mf::ELseverityLevel::ELsev_unspecified:
102 std::cout << debugColor_;
105 case mf::ELseverityLevel::ELsev_info:
106 std::cout << infoColor_;
109 case mf::ELseverityLevel::ELsev_warning:
110 std::cout << warningColor_;
113 case mf::ELseverityLevel::ELsev_error:
114 case mf::ELseverityLevel::ELsev_severe:
115 case mf::ELseverityLevel::ELsev_highestSeverity:
122 std::cout <<
"\033[5m";
124 std::cout << errorColor_;
130 std::cout << oss.str();
131 std::cout <<
"\033[0m" << std::endl;
141 #ifndef EXTERN_C_FUNC_DECLARE_START
142 #define EXTERN_C_FUNC_DECLARE_START extern "C" {
145 EXTERN_C_FUNC_DECLARE_START
146 auto makePlugin(
const std::string& ,
const fhicl::ParameterSet& pset)
148 return std::make_unique<mfplugins::ELANSI>(pset);
152 DEFINE_BASIC_PLUGINTYPE_FUNC(mf::service::ELdestination)
ELANSI(Parameters const &pset)
ELANSI Constructor
Configuration parameters for ELANSI.
fhicl::Atom< std::string > debugColor
"debug_ansi_color" (Default: "\033[39m"): ANSI Color string for ErrDebugor Messages ...
fhicl::Atom< std::string > errorColor
"error_ansi_color" (Default: "\033[1m\033[91m"): ANSI Color string for Error Messages ...
fhicl::Atom< bool > bellOnError
"bell_on_error" (Default: true): Whether to ring the system bell on error messages ...
fhicl::TableFragment< ELdestination::Config > elDestConfig
ELdestination common config parameters.
Message Facility destination which colorizes the console output
fhicl::Atom< bool > blinkOnError
"blink_error_messages" (Default: false): Whether to print error messages with blinking text ...
fhicl::Atom< std::string > infoColor
"info_ansi_color" (Default: "\033[92m"): ANSI Color string for Info Messages
fhicl::Atom< std::string > warningColor
"warning_ansi_color" (Default: "\033[1m\033[93m"): ANSI Color string for Warning Messages ...
fhicl::WrappedTable< Config > Parameters
Used for ParameterSet validation.
void routePayload(const std::ostringstream &o, const ErrorObj &msg) override
Serialize a MessageFacility message to the output.