-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Logging] Introducing Provider/Receiver pattern for logging #1831
Changes from all commits
dbb5478
9cbaf5a
bddd31f
360deb9
28d7734
2c2956c
24a0b13
50f88ca
294e531
a5bf465
c390e4c
d22b9a9
960e9ba
546db2c
4072334
ee26111
bcf6d54
c4f4cd7
e0729f6
2d6cee1
2b4d197
2c53961
9ceee76
76707d5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -60,7 +60,7 @@ namespace eCAL | |
settings_.ClearHostFilter(); // There is no global host filter | ||
|
||
// Initialize eCAL | ||
eCAL::Initialize("", eCAL::Init::Default | eCAL::Init::Monitoring); | ||
eCAL::Initialize("eCALRec-Server", eCAL::Init::Default | eCAL::Init::Monitoring); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Init::Monitoring" is directly included [misc-include-cleaner] eCAL::Initialize("eCALRec-Server", eCAL::Init::Default | eCAL::Init::Monitoring);
^ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Initialize" is directly included [misc-include-cleaner] app/rec/rec_server_core/src/rec_server_impl.cpp:21: - #include "recorder_settings.h"
+ #include "ecal/ecal_core.h"
+ #include "recorder_settings.h" |
||
|
||
// Start FTP Server | ||
ftp_server_->start(5); | ||
|
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -39,50 +39,63 @@ namespace eCAL | |||||
{ | ||||||
namespace Logging | ||||||
{ | ||||||
namespace Sinks | ||||||
namespace Provider | ||||||
{ | ||||||
namespace Console | ||||||
struct Sink | ||||||
{ | ||||||
bool enable; //!< Enable sink | ||||||
eCAL_Logging_Filter filter_log; //!< Log messages logged (all, info, warning, error, fatal, debug1, debug2, debug3, debug4) | ||||||
}; | ||||||
|
||||||
namespace File | ||||||
{ | ||||||
struct Configuration | ||||||
{ | ||||||
bool enable { true }; //!< Enable console logging (Default: true) | ||||||
eCAL_Logging_Filter filter_log_con { log_level_error | log_level_fatal }; /*!< Log messages logged to console (all, info, warning, error, fatal, debug1, debug2, debug3, debug4) | ||||||
(Default: info, warning, error, fatal)*/ | ||||||
std::string path { "" }; //!< Path to log file (Default: "") | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: redundant string initialization [readability-redundant-string-init]
Suggested change
|
||||||
}; | ||||||
} | ||||||
|
||||||
namespace File | ||||||
namespace UDP | ||||||
{ | ||||||
struct Configuration | ||||||
{ | ||||||
bool enable { false }; //!< Enable file logging (Default: false) | ||||||
std::string path { "" }; //!< Path to log file (Default: "") | ||||||
eCAL_Logging_Filter filter_log_file { log_level_none }; /*!< Log messages logged into file system (all, info, warning, error, fatal, debug1, debug2, debug3, debug4) | ||||||
(Default: info, warning, error, fatal)*/ | ||||||
unsigned int port { 14001 }; //!< UDP port number (Default: 14001) | ||||||
}; | ||||||
} | ||||||
|
||||||
struct Configuration | ||||||
{ | ||||||
Sink console { true, log_level_error | log_level_fatal}; //!< default: true, log_level_error | ||||||
Sink file { false, log_level_none }; //!< default: false, log_level_none | ||||||
Sink udp { true, log_filter_default }; //!< default: true, log_filter_default | ||||||
|
||||||
File::Configuration file_config; | ||||||
UDP::Configuration udp_config; | ||||||
|
||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks very clean like this! |
||||||
}; | ||||||
} | ||||||
|
||||||
namespace Receiver | ||||||
{ | ||||||
namespace UDP | ||||||
{ | ||||||
struct Configuration | ||||||
{ | ||||||
bool enable { true }; //!< Enable UDP logging (Default: false) | ||||||
unsigned int port { 14001 }; //!< UDP port number (Default: 14001) | ||||||
eCAL_Logging_Filter filter_log_udp { log_filter_default }; //!< Log messages logged via udp network (Default: info, warning, error, fatal) | ||||||
unsigned int port { 14001 }; //!< UDP port number (Default: 14001) | ||||||
}; | ||||||
} | ||||||
|
||||||
struct Configuration | ||||||
{ | ||||||
Console::Configuration console; | ||||||
File::Configuration file; | ||||||
UDP::Configuration udp; | ||||||
bool enable { false }; //!< Enable UDP receiver (Default: false) | ||||||
UDP::Configuration udp_config; | ||||||
}; | ||||||
} | ||||||
|
||||||
struct Configuration | ||||||
{ | ||||||
Sinks::Configuration sinks; | ||||||
Provider::Configuration provider; | ||||||
Receiver::Configuration receiver; | ||||||
}; | ||||||
} | ||||||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -576,91 +576,111 @@ namespace YAML | |
/____/\___/\_, /\_, /_/_//_/\_, / | ||
/___//___/ /___/ | ||
*/ | ||
Node convert<eCAL::Logging::Sinks::UDP::Configuration>::encode(const eCAL::Logging::Sinks::UDP::Configuration& config_) | ||
|
||
Node convert<eCAL::Logging::Receiver::UDP::Configuration>::encode(const eCAL::Logging::Receiver::UDP::Configuration& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Receiver::UDP::Configuration" is directly included [misc-include-cleaner] ecal/core/src/config/configuration_to_yaml.cpp:1: + #include "ecal/config/logging.h" |
||
{ | ||
Node node; | ||
node["enable"] = config_.enable; | ||
node["port"] = config_.port; | ||
node["level"] = LogLevelToVector(config_.filter_log_udp); | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Sinks::UDP::Configuration>::decode(const Node& node_, eCAL::Logging::Sinks::UDP::Configuration& config_) | ||
bool convert<eCAL::Logging::Receiver::UDP::Configuration>::decode(const Node& node_, eCAL::Logging::Receiver::UDP::Configuration& config_) | ||
{ | ||
AssignValue<bool>(config_.enable, node_, "enable"); | ||
AssignValue<unsigned int>(config_.port, node_, "port"); | ||
return true; | ||
} | ||
|
||
std::vector<std::string> tmp; | ||
AssignValue<std::vector<std::string>>(tmp, node_, "level"); | ||
config_.filter_log_udp = ParseLogLevel(tmp); | ||
Node convert<eCAL::Logging::Receiver::Configuration>::encode(const eCAL::Logging::Receiver::Configuration& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Receiver::Configuration" is directly included [misc-include-cleaner] Node convert<eCAL::Logging::Receiver::Configuration>::encode(const eCAL::Logging::Receiver::Configuration& config_)
^ |
||
{ | ||
Node node; | ||
node["enable"] = config_.enable; | ||
node["udp_config"] = config_.udp_config; | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Receiver::Configuration>::decode(const Node& node_, eCAL::Logging::Receiver::Configuration& config_) | ||
{ | ||
AssignValue<bool>(config_.enable, node_, "enable"); | ||
AssignValue<eCAL::Logging::Receiver::UDP::Configuration>(config_.udp_config, node_, "udp_config"); | ||
return true; | ||
} | ||
|
||
Node convert<eCAL::Logging::Sinks::Console::Configuration>::encode(const eCAL::Logging::Sinks::Console::Configuration& config_) | ||
Node convert<eCAL::Logging::Provider::UDP::Configuration>::encode(const eCAL::Logging::Provider::UDP::Configuration& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Provider::UDP::Configuration" is directly included [misc-include-cleaner] Node convert<eCAL::Logging::Provider::UDP::Configuration>::encode(const eCAL::Logging::Provider::UDP::Configuration& config_)
^ |
||
{ | ||
Node node; | ||
node["port"] = config_.port; | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Provider::UDP::Configuration>::decode(const Node& node_, eCAL::Logging::Provider::UDP::Configuration& config_) | ||
{ | ||
AssignValue<unsigned int>(config_.port, node_, "port"); | ||
return true; | ||
} | ||
|
||
Node convert<eCAL::Logging::Provider::Sink>::encode(const eCAL::Logging::Provider::Sink& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Provider::Sink" is directly included [misc-include-cleaner] Node convert<eCAL::Logging::Provider::Sink>::encode(const eCAL::Logging::Provider::Sink& config_)
^ |
||
{ | ||
Node node; | ||
node["enable"] = config_.enable; | ||
node["level"] = LogLevelToVector(config_.filter_log_con); | ||
node["level"] = LogLevelToVector(config_.filter_log); | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Sinks::Console::Configuration>::decode(const Node& node_, eCAL::Logging::Sinks::Console::Configuration& config_) | ||
bool convert<eCAL::Logging::Provider::Sink>::decode(const Node& node_, eCAL::Logging::Provider::Sink& config_) | ||
{ | ||
AssignValue<bool>(config_.enable, node_, "enable"); | ||
std::vector<std::string> tmp; | ||
AssignValue<std::vector<std::string>>(tmp, node_, "level"); | ||
config_.filter_log_con = ParseLogLevel(tmp); | ||
config_.filter_log = ParseLogLevel(tmp); | ||
return true; | ||
} | ||
|
||
Node convert<eCAL::Logging::Sinks::File::Configuration>::encode(const eCAL::Logging::Sinks::File::Configuration& config_) | ||
Node convert<eCAL::Logging::Provider::File::Configuration>::encode(const eCAL::Logging::Provider::File::Configuration& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Provider::File::Configuration" is directly included [misc-include-cleaner] Node convert<eCAL::Logging::Provider::File::Configuration>::encode(const eCAL::Logging::Provider::File::Configuration& config_)
^ |
||
{ | ||
Node node; | ||
node["enable"] = config_.enable; | ||
node["path"] = config_.path; | ||
node["level"] = LogLevelToVector(config_.filter_log_file); | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Sinks::File::Configuration>::decode(const Node& node_, eCAL::Logging::Sinks::File::Configuration& config_) | ||
bool convert<eCAL::Logging::Provider::File::Configuration>::decode(const Node& node_, eCAL::Logging::Provider::File::Configuration& config_) | ||
{ | ||
AssignValue<bool>(config_.enable, node_, "enable"); | ||
AssignValue<std::string>(config_.path, node_, "path"); | ||
|
||
std::vector<std::string> tmp; | ||
AssignValue<std::vector<std::string>>(tmp, node_, "level"); | ||
config_.filter_log_file = ParseLogLevel(tmp); | ||
return true; | ||
} | ||
|
||
Node convert<eCAL::Logging::Sinks::Configuration>::encode(const eCAL::Logging::Sinks::Configuration& config_) | ||
Node convert<eCAL::Logging::Provider::Configuration>::encode(const eCAL::Logging::Provider::Configuration& config_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. warning: no header providing "eCAL::Logging::Provider::Configuration" is directly included [misc-include-cleaner] Node convert<eCAL::Logging::Provider::Configuration>::encode(const eCAL::Logging::Provider::Configuration& config_)
^ |
||
{ | ||
Node node; | ||
node["console"] = config_.console; | ||
node["file"] = config_.file; | ||
node["udp"] = config_.udp; | ||
node["console"] = config_.console; | ||
node["file"] = config_.file; | ||
node["udp"] = config_.udp; | ||
node["file_config"] = config_.file_config; | ||
node["udp_config"] = config_.udp_config; | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Sinks::Configuration>::decode(const Node& node_, eCAL::Logging::Sinks::Configuration& config_) | ||
bool convert<eCAL::Logging::Provider::Configuration>::decode(const Node& node_, eCAL::Logging::Provider::Configuration& config_) | ||
{ | ||
AssignValue<eCAL::Logging::Sinks::Console::Configuration>(config_.console, node_, "console"); | ||
AssignValue<eCAL::Logging::Sinks::File::Configuration>(config_.file, node_, "file"); | ||
AssignValue<eCAL::Logging::Sinks::UDP::Configuration>(config_.udp, node_, "udp"); | ||
AssignValue<eCAL::Logging::Provider::Sink>(config_.console, node_, "console"); | ||
AssignValue<eCAL::Logging::Provider::Sink>(config_.file, node_, "file"); | ||
AssignValue<eCAL::Logging::Provider::Sink>(config_.udp, node_, "udp"); | ||
AssignValue<eCAL::Logging::Provider::UDP::Configuration>(config_.udp_config, node_, "udp_config"); | ||
AssignValue<eCAL::Logging::Provider::File::Configuration>(config_.file_config, node_, "file_config"); | ||
return true; | ||
} | ||
|
||
Node convert<eCAL::Logging::Configuration>::encode(const eCAL::Logging::Configuration& config_) | ||
{ | ||
Node node; | ||
node["sinks"] = config_.sinks; | ||
node["provider"] = config_.provider; | ||
node["receiver"] = config_.receiver; | ||
return node; | ||
} | ||
|
||
bool convert<eCAL::Logging::Configuration>::decode(const Node& node_, eCAL::Logging::Configuration& config_) | ||
{ | ||
AssignValue<eCAL::Logging::Sinks::Configuration>(config_.sinks, node_, "sinks"); | ||
AssignValue<eCAL::Logging::Provider::Configuration>(config_.provider, node_, "provider"); | ||
AssignValue<eCAL::Logging::Receiver::Configuration>(config_.receiver, node_, "receiver"); | ||
return true; | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "eCAL::Init::Default" is directly included [misc-include-cleaner]
app/rec/rec_server_core/src/rec_server_impl.cpp:21: