Number of oldest entries to remove when maxDebounceEntries is exceeded
When cleanup is triggered, this many oldest entries will be removed
Default is 100 entries (10% of default max)
Custom final function to execute when log level meets the threshold specified by exeLevel
Takes two parameters: the log message string and the DevLevel
Useful for custom log processing, remote logging, or error reporting
The lowest level threshold to execute the function exeFinalFunc
Only logs at or above this level will trigger the final function
Default is warn (executes for warn, error, and fatal levels)
Suffix string appended to log names when executing final function
Defaults to '&exe' to indicate execution mode
Customize this to use your preferred execution indicator
Controls whether Dev.print method prints only in debug mode
If null, prints in all modes; if true, prints only in debug mode; if false, prints in all modes
Whether to use different background colors when executing final function
When true, uses background colors instead of text colors for exeFinalFunc execution
Whether to show log output when executing the final function exeFinalFunc
When true, logs are displayed in console even when final function is executed
Whether to enable tag-based filtering
When false (default), all logs are displayed and tag information is shown
When true, only logs with tags matching tags set will be output to console
Note: Tag filtering only affects console output, exeFinalFunc is always executed regardless
Lightweight mode: Skip stack trace capture completely for production
When enabled, file location logging is disabled for maximum performance
Recommended for production environments where logging performance is critical
Whether to replace newline characters and clean up whitespace for better search visibility in console
Defaults to true in debug mode (kDebugMode), false in release mode
When true, newline characters are replaced with newlineReplacement string
Whether to show emoji indicators for log levels
Defaults to true in debug mode (kDebugMode), false in release mode
When true, displays emoji symbols like 🔍, 📬, 🎉, 🚧, ❌, 💣 for each log level
When false, hides emoji indicators and only shows text level names
Maximum number of debounce entries to keep in memory
When this limit is exceeded, the oldest entries will be automatically cleaned up
Set to 0 or negative value to disable automatic cleanup (unlimited entries)
Default is 1000 entries
The replacement string for newline characters when isReplaceNewline is true
Default is ' • ' (space + bullet + space) - a distinctive separator rarely seen in normal logs
The bullet point provides clear visual separation between content segments
Tag filtering for selective log output
Define the set of tags to display when isFilterByTags is enabled
When isFilterByTags is false, this set has no filtering effect (logs always display)
When isFilterByTags is true and this is not null/empty, only logs matching these tags are shown
Use batched logging to reduce main thread blocking
When true, logs are accumulated and flushed in batches asynchronously
This significantly improves performance in high-frequency logging scenarios (200+ logs/sec)
Use fast print mode for better performance in multi-console logging
When true, uses print() instead of debugPrint() for faster output
When false, uses debugPrint() which is safer but slower
Use optimized stack trace parsing (stack_trace package)
When enabled (default), uses the stack_trace package for better performance (40-60% faster)
When disabled, uses basic string operations (still 10-20% faster than original)
Add a keyword to the cache to mark it as logged
@paramkey: The keyword to add to the cache
After adding, subsequent logs containing this keyword will be suppressed when using printOnceIfContains
Clear all cached keywords to allow repeated logging
Removes all entries from the one-time print cache
Useful for resetting the print-once state during testing or at application restart
Clear all debounce timestamps to reset debounce state
Removes all entries from the debounce cache, allowing all debounced logs to fire immediately
Useful for resetting the debounce state during testing or at application restart
Execute custom final func with purple text or blue text with multiple consoles
@parammsg: The message string to be logged
@paramname: Custom name/tag for the log entry; if null, uses the level name (with prefix for multi-console)
@paramlevel: The log level (verbose, normal, info, success, warn, error, fatal), defaults to normal
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode with dbgPrt/unlPrt prefix
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramfileInfo: Custom file location string; if null, auto-detects from stack trace
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Alias for exe method - executes debug/normal level log with custom final function
This is the recommended method name. The exe method is deprecated.
@parammsg: The message string to be logged
@paramname: Custom name/tag for the log entry; if null, uses the level name (with prefix for multi-console)
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode with dbgPrt/unlPrt prefix
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramfileInfo: Custom file location string; if null, auto-detects from stack trace
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute error level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute fatal level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute info level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute success level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute verbose level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Execute warn level log with custom final function
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
@deprecated Use exeWarn instead. This will be removed in future versions.
Execute warning level log with custom final function (deprecated)
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramisMultConsole: If true, enables multi-console logging mode
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Force flush all pending batched logs immediately
When useBatchedLogging is enabled, logs are accumulated and flushed asynchronously
Call this method in critical sections where you need to ensure all logs are written
before proceeding (e.g., before app termination, before crash, in error handlers)
Check if a keyword has been cached (logged once)
@paramkey: The keyword to check in the cache
@return: Returns true if the keyword has been logged before, false otherwise
Used with printOnceIfContains parameter to prevent duplicate log messages
Default color log
@parammsg: The message string to be logged
@paramlevel: The log level (verbose, normal, info, success, warn, error, fatal), defaults to normal
@paramisLog: If set to true, logs regardless of the static enable flag
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramfileLocation: Custom file location string; if null, auto-detects from stack trace
@paramtime: Custom timestamp for the log; if null, uses current time
@paramsequenceNumber: Sequence number for log ordering
@paramname: Custom name/tag for the log entry; if null, uses the level name
@paramzone: Dart Zone where the log originates from
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Alias for log method - logs a debug/normal level message
This is the recommended method name. The log method is deprecated.
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramfileLocation: Custom file location string; if null, auto-detects from stack trace
@paramtime: Custom timestamp for the log; if null, uses current time
@paramsequenceNumber: Sequence number for log ordering
@paramname: Custom name/tag for the log entry; if null, uses the level name
@paramzone: Dart Zone where the log originates from
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Error - Red text for error messages
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Fatal/Critical error - text (orange/purple)
Use for fatal errors that require immediate attention
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Info - Blue text for informational messages
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Success - Green text for success/completion messages
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Verbose - Dark gray text for detailed debug information
Use for verbose debugging details
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Warn - Yellow text for warning messages
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
@deprecated Use logWarn instead. This will be removed in future versions.
Warning - Yellow text for warning messages (deprecated, use logWarn)
@parammsg: The message string to be logged
@paramisLog: If set to true, logs regardless of the static enable flag
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Log supporting on multiple consoles
@paramobject: The object to be logged (will be converted to string)
@paramname: Custom name/tag for the log entry; if null, uses the level name with dbgPrt/unlPrt prefix
@paramlevel: The log level (verbose, normal, info, success, warn, error, fatal), defaults to normal
@paramcolorInt: ANSI color code (0 to 107) for text color customization
@paramisLog: If set to true, logs regardless of the static enable flag
@paramfileLocation: Custom file location string; if null, auto-detects from stack trace
@paramisDebug: If true, prints only on debug mode; if null, uses static isDebugPrint
@paramexecFinalFunc: If true, executes the custom final function exeFinalFunc
@paramerror: Associated error object to be logged alongside the message
@paramstackTrace: Stack trace information for debugging
@paramprintOnceIfContains: If provided, only prints once when message contains this keyword
@paramdebounceMs: Debounce time interval in milliseconds, logs within this interval will be discarded
@paramdebounceKey: Custom key for debounce identification (if not provided, uses msg|devLevel|name as fallback)
@paramtag: Tag for show and filtering; displayed in log output, and when isFilterByTags is true, only logs with tags matching tags are displayed
Check if a log should be debounced based on time interval
@paramkey: The debounce key to identify the log entry
@paramdebounceMs: Debounce interval in milliseconds
@return: Returns true if the log should be skipped (still in debounce period), false to allow logging