10 char const*
const severity_level_names[] = {
"TRACE",
"DEBUG",
"INFO",
11 "NOTICE",
"WARNING",
"ERROR",
12 "CRITICAL",
"ALERT",
"FATAL"};
15 int max_severity_level_width() {
17 for (
char const* name : severity_level_names) {
18 r = std::max(r, std::strlen(name));
24 int const sev_level_width = max_severity_level_width();
28 std::size_t
const count =
29 sizeof(severity_level_names) /
sizeof(severity_level_names[0]);
30 int idx =
static_cast<int>(x);
31 if (idx < 0 or std::size_t(idx) >= count) {
32 return os <<
"[invalid severity (" << idx <<
")]";
34 return os << severity_level_names[idx];
45 std::size_t
const count =
46 sizeof(severity_level_names) /
sizeof(severity_level_names[0]);
47 for (std::size_t i = 0; i != count; ++i) {
48 if (rhs == severity_level_names[i]) {
53 std::ostringstream os;
54 os <<
"Unknown or invalid severity level (" << rhs <<
")";
55 throw std::invalid_argument(os.str());
59 std::size_t
const count =
60 sizeof(severity_level_names) /
sizeof(severity_level_names[0]);
61 if (0 <= static_cast<int>(rhs) and
static_cast<std::size_t
>(rhs) < count) {
62 return severity_level_names[
static_cast<int>(rhs)];
64 std::ostringstream os;
65 os <<
"Unknown or invalid severity level (" << rhs <<
")";
66 throw std::invalid_argument(os.str());
70 return sev_level_width;
severity_level
Severity levels for JayBeams, based on syslog.
std::ostream & operator<<(std::ostream &os, as_hhmmssu const &x)
Format as_hhmmssu into an iostream.
char const * get_name(severity_level const &rhs)
Get the name of a security level.
std::istream & operator>>(std::istream &, cpu_set &)
Read a cpu set in list format.
int severity_level_width()
Return the recommended with for printing security levels.
void parse(severity_level &lhs, std::string const &rhs)
Parse a severity level.