Skip to content

Commit 0eb9542

Browse files
committed
Fix logging code
1 parent a9e5ccb commit 0eb9542

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/Akka.Hosting/Logging/LoggerFactoryLogger.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,20 @@ protected virtual void Log(LogEvent log, ActorPath path)
9090
// Log with structured state
9191
// Use LogMessage.ToString() which applies the correct formatter (SemanticLogMessageFormatter)
9292
// instead of string.Format() which only works with positional {0} placeholders
93-
_akkaLogger.Log(logLevel, new EventId(), state, log.Cause,
94-
(s, ex) => log.Message?.ToString() ?? string.Empty);
93+
_akkaLogger.Log(logLevel, new EventId(), state, log.Cause, (s, ex) =>
94+
{
95+
try
96+
{
97+
return log.ToString();
98+
}
99+
catch
100+
{
101+
if(log.Message is LogMessage msg)
102+
return $"Received a malformed formatted message. Log level: [{log.LogLevel()}], Template: [{msg.Format}], args: [{string.Join(",", msg.Unformatted())}]";
103+
104+
return $"Received a malformed formatted message. Log level: [{log.LogLevel()}], Message: [{log.Message}]";
105+
}
106+
});
95107
}
96108

97109
private static LogLevel GetLogLevel(Event.LogLevel level)

0 commit comments

Comments
 (0)