diff options
Diffstat (limited to 'src/zenserver/sessions/httpsessions.cpp')
| -rw-r--r-- | src/zenserver/sessions/httpsessions.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/zenserver/sessions/httpsessions.cpp b/src/zenserver/sessions/httpsessions.cpp index 56a22fb04..2276cb81a 100644 --- a/src/zenserver/sessions/httpsessions.cpp +++ b/src/zenserver/sessions/httpsessions.cpp @@ -417,13 +417,26 @@ HttpSessionsService::SessionLogRequest(HttpRouterRequest& Req) const DateTime Now = DateTime::Now(); auto AppendFromObject = [&](CbObjectView Obj) { - std::string Level(Obj["level"sv].AsString()); + CbFieldView LevelField = Obj["level"sv]; + std::string_view Level; + if (LevelField.IsString()) + { + Level = LevelField.AsString(); + } + else if (LevelField.IsInteger()) + { + int32_t LevelInt = LevelField.AsInt32(); + if (LevelInt >= 0 && LevelInt < logging::LogLevelCount) + { + Level = logging::ToString(static_cast<logging::LogLevel>(LevelInt)); + } + } std::string Message(Obj["message"sv].AsString()); CbObjectView DataView = Obj["data"sv].AsObjectView(); Session->AppendLog(SessionsService::LogEntry{ .Timestamp = Now, - .Level = std::move(Level), + .Level = std::string(Level), .Message = std::move(Message), .Data = CbObject::Clone(DataView), }); |