aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/sessions/httpsessions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/sessions/httpsessions.cpp')
-rw-r--r--src/zenserver/sessions/httpsessions.cpp17
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),
});