printf function
void
printf(
- Object? data, {
- Object? mapKey,
- int? listIndex,
- String? tag,
- PrintfLevel level = PrintfLevel.debug,
- Color? foreground,
- Color? background,
- bool italic = false,
- bool bold = false,
- bool underline = false,
- bool invert = false,
- bool strike = false,
- bool doubleUnderline = false,
- bool framed = false,
- bool? timestamp,
- bool? showFile,
- PrintfStyle? style,
- String? name,
- int stackTraceIndex = 1,
Prints data to the console with optional ANSI styling, tags, and metadata.
Pretty-prints Map/List and JSON strings. Use mapKey or listIndex
to drill into nested structures before printing.
printf({'user': 'Ada'}, tag: 'AUTH', level: PrintfLevel.success);
printfError('Token expired');
printfSeparator(object: 'BOOT');
Implementation
void printf(
Object? data, {
Object? mapKey,
int? listIndex,
String? tag,
PrintfLevel level = PrintfLevel.debug,
Color? foreground,
Color? background,
bool italic = false,
bool bold = false,
bool underline = false,
bool invert = false,
bool strike = false,
bool doubleUnderline = false,
bool framed = false,
bool? timestamp,
bool? showFile,
PrintfStyle? style,
String? name,
int stackTraceIndex = 1,
}) {
if (!_shouldPrint(level)) return;
final resolved = _resolvePayload(data, mapKey: mapKey, listIndex: listIndex);
final message = _formatPayload(resolved);
final prefix = _buildPrefix(
level: level,
tag: tag,
timestamp: timestamp ?? PrintfConfig.showTimestamp,
showFile: showFile ?? PrintfConfig.showCaller,
stackTraceIndex: stackTraceIndex,
);
final appliedStyle = style ??
(foreground != null ||
background != null ||
italic ||
bold ||
underline ||
invert ||
strike ||
doubleUnderline ||
framed
? PrintfStyle(
foreground: foreground,
background: background,
italic: italic,
bold: bold,
underline: underline,
invert: invert,
strike: strike,
doubleUnderline: doubleUnderline,
framed: framed,
)
: level.defaultStyle);
developer.log(
'$prefix${appliedStyle.applyTo(message)}',
name: name ?? PrintfConfig.logName,
level: _developerLevel(level),
stackTrace: _callerStackTrace(stackTraceIndex),
);
}