Integrate review feedback

This commit is contained in:
Dominik Charousset 2025-02-15 16:37:24 +01:00
parent 30615f425e
commit 20b3eca257
3 changed files with 46 additions and 16 deletions

View file

@ -95,3 +95,28 @@ event Broker::error(code: ErrorCode, msg: string)
Reporter::error(fmt("Broker error (%s): %s", code, msg));
}
event Broker::internal_log_event(lvl: LogSeverityLevel, id: string, description: string)
{
local severity = Broker::CRITICAL_EVENT;
switch lvl {
case Broker::LOG_ERROR:
severity = Broker::ERROR;
break;
case Broker::LOG_WARNING:
severity = Broker::WARNING_EVENT;
break;
case Broker::LOG_INFO:
severity = Broker::INFO_EVENT;
break;
case Broker::LOG_VERBOSE:
severity = Broker::VERBOSE_EVENT;
break;
case Broker::LOG_DEBUG:
severity = Broker::DEBUG_EVENT;
break;
}
Log::write(Broker::LOG, [$ts = network_time(),
$ty = severity,
$ev = id,
$message = description]);
}

View file

@ -1135,14 +1135,12 @@ EnumValPtr lookup_enum_val(const char* module_name, const char* name) {
} // namespace
void Manager::ProcessLogEvents() {
static auto plval = lookup_enum_val("Broker", "LOG");
static auto lpli = id::find_type<RecordType>("Broker::Info");
static auto ev_critical = lookup_enum_val("Broker", "CRITICAL_EVENT");
static auto ev_error = lookup_enum_val("Broker", "ERROR_EVENT");
static auto ev_warning = lookup_enum_val("Broker", "WARNING_EVENT");
static auto ev_info = lookup_enum_val("Broker", "INFO_EVENT");
static auto ev_verbose = lookup_enum_val("Broker", "VERBOSE_EVENT");
static auto ev_debug = lookup_enum_val("Broker", "DEBUG_EVENT");
static auto ev_critical = lookup_enum_val("Broker", "LOG_CRITICAL");
static auto ev_error = lookup_enum_val("Broker", "LOG_ERROR");
static auto ev_warning = lookup_enum_val("Broker", "LOG_WARNING");
static auto ev_info = lookup_enum_val("Broker", "LOG_INFO");
static auto ev_verbose = lookup_enum_val("Broker", "LOG_VERBOSE");
static auto ev_debug = lookup_enum_val("Broker", "LOG_DEBUG");
auto evType = [](BrokerSeverityLevel lvl) {
switch ( lvl ) {
@ -1161,14 +1159,12 @@ void Manager::ProcessLogEvents() {
for ( auto& event : events ) {
auto severity = event->severity;
if ( bstate->logSeverity >= severity ) {
auto record = make_intrusive<RecordVal>(lpli);
record->AssignTime(0, run_state::network_time);
record->Assign(1, evType(event->severity));
auto ev = make_intrusive<StringVal>(event->identifier);
record->Assign(2, ev);
auto msg = make_intrusive<StringVal>(event->description);
record->Assign(4, msg);
log_mgr->Write(plval.get(), record.get());
auto args = Args{};
args.reserve(3);
args.emplace_back(evType(severity));
args.emplace_back(make_intrusive<StringVal>(event->identifier));
args.emplace_back(make_intrusive<StringVal>(event->description));
event_mgr.Enqueue(::Broker::internal_log_event, std::move(args));
}
if ( bstate->stderrSeverity >= severity ) {
fprintf(stderr, "[BROKER/%s] %s\n", severity_names_tbl[static_cast<int>(severity)],

View file

@ -7,6 +7,15 @@
module Broker;
## Generated when Broker emits an internal logging event.
##
## lvl: the severity of the event as reported by Broker.
##
## id: an identifier for the event type.
##
## description: a message providing additional context.
event Broker::internal_log_event%(lvl: LogSeverityLevel, id: string, description: string%);
## Generated when a new peering has been established. Both sides of the peering
## receive this event, created independently in each endpoint. For the endpoint
## establishing the peering, the added endpoint's network information will match