formatLog method
Formats a log message with modern styling
Implementation
String formatLog({
required LogLevel level,
required String message,
required DateTime timestamp,
LogEvent? event,
Map<String, dynamic>? context,
StackTrace? stackTrace,
bool useColors = true,
bool useEmojis = true,
bool showTimestamp = true,
bool showContext = true,
}) {
final buffer = StringBuffer();
// Add emoji if enabled
if (useEmojis) {
buffer.write('${_levelEmojis[level] ?? '📝'} ');
}
// Add timestamp if enabled
if (showTimestamp) {
final timeStr = _formatTimestamp(timestamp, useColors);
buffer.write('$timeStr ');
}
// Add level badge
final levelBadge = _formatLevelBadge(level, useColors);
buffer.write('$levelBadge ');
// Add message
final formattedMessage = _formatMessage(message, level, useColors);
buffer.write(formattedMessage);
// Add event information if present
if (event != null) {
final eventInfo = _formatEvent(event, useColors);
buffer.write('\n$eventInfo');
}
// Add context if present
if (context != null && showContext) {
final contextInfo = _formatContext(context, useColors);
buffer.write('\n$contextInfo');
}
// Add stack trace if present
if (stackTrace != null) {
final stackInfo = _formatStackTrace(stackTrace, useColors);
buffer.write('\n$stackInfo');
}
return buffer.toString();
}