log method
Logs a message. Default LogLevel is LogLevel.info. The log is written to the database when the session is closed.
Implementation
void log(
String message, {
LogLevel? level,
dynamic exception,
StackTrace? stackTrace,
}) {
assert(
!_closed,
'Session is closed, and logging can no longer be performed.',
);
int? messageId;
if (this is StreamingSession) {
messageId = (this as StreamingSession).currentMessageId;
}
var entry = LogEntry(
sessionLogId: sessionLogs.temporarySessionId,
serverId: server.serverId,
messageId: messageId,
logLevel: level ?? LogLevel.info,
message: message,
time: DateTime.now(),
error: exception != null ? '$exception' : null,
stackTrace: stackTrace != null ? '$stackTrace' : null,
order: sessionLogs.currentLogOrderId,
);
sessionLogs.currentLogOrderId += 1;
if (serverpod.runMode == ServerpodRunMode.development) {
stdout.writeln('${entry.logLevel.name.toUpperCase()}: ${entry.message}');
if (entry.error != null) stdout.writeln(entry.error);
if (entry.stackTrace != null) stdout.writeln(entry.stackTrace);
}
if (!serverpod.logManager.shouldLogEntry(session: this, entry: entry)) {
return;
}
// Called asynchronously.
serverpod.logManager.logEntry(this, entry);
}