l 3.0.0-nullsafety.3 l: ^3.0.0-nullsafety.3 copied to clipboard
Cross-platform html/io Logger library with simple API. Manipulate with native and web console. Support ascii colorize output.
[L]ogger #
About #
Cross-platform html/io logger with simple API.
No need to create an logger object. Just import and use. Simple and w/o boilerplate.
Work with native console.
Core API #
Key features #
Method | Description |
---|---|
[s] | A shout is always displayed |
[v1], [v] | Regular message with verbose level 1 |
[e] | Error message with verbose level 1 |
[v2], [vv] | Regular message with verbose level 2 |
[w] | Warning message with verbose level 2 |
[v3], [vvv] | Regular message with verbose level 3 |
[i], [<] | Inform message with verbose level 3 |
[v4], [vvvv] | Regular message with verbose level 4 |
[d], [<<] | Debug message with verbose level 4 |
[v5], [vvvvv] | Regular message with verbose level 5 |
[v6], [vvvvvv] | Regular message with verbose level 6 |
l.s('shout me');
l.e('error msg');
l.w('warning msg');
l.i('info msg');
l < 'alt info msg';
l.d('debug msg');
l << 'alt debug msg';
l.v('verbose lvl #1');
l.vv('verbose lvl #2');
l.vvv('verbose lvl #3');
l.v4('verbose lvl #4');
l.v5('verbose lvl #5');
l.v6('verbose lvl #6');
Integration capabilities #
Method | Description |
---|---|
[listen] | Broadcast stream receiving logs. |
// Broadcast stream instantly receiving logs.
l.forEach((log) => print('* ${log.level} : ${log.message}'));
Print handling and customizing #
Logger supports fine-tuning.
Also, you can handle print
and output with l
on some function or in a whole app with this simple syntax:
import 'package:l/l.dart';
void main() => l.capture(
someFunction,
const LogOptions(
handlePrint: true,
messageFormatting: _messageFormatting,
),
);
Future<void> someFunction() async {
print('Hello');
await Future<void>.delayed(const Duration(milliseconds: 150));
l.d('world');
await Future<void>.delayed(const Duration(milliseconds: 150));
l.e('!!!');
}
Object _messageFormatting(Object message, LogLevel logLevel, DateTime now) =>
'${now.hour}:${now.minute.toString().padLeft(2, '0')} $message';
Limitations #
- When there is no direct access to the terminal, it works through print.
- !!! PLEASE, DO NOT LOG SENSITIVE INFORMATION !!!
Changelog #
Refer to the Changelog to get all release notes.
Maintainers #
License #
Tags #
logger, log, logs, logging, logging-library, cross-platform, io, html