An easy to use and extendable logging package for Dart. Especially useful for use in libraries, as it allows application to control logging from the imported libraries.
Features
- Ability to filter logs from imported libraries
- 100% configurable (print logs to console, write to file or send to backend all possible!)
- Similar to other logging packages, so nothing new to learn
Usage
A simple usage example:
import 'package:quick_log/quick_log.dart';
void main() {
const log = Logger('LogExample');
log.debug('this is a debug message');
log.info('this is an info message');
}
Configuring logger output:
import 'package:quick_log/quick_log.dart';
void main() {
const log = Logger('LogExample');
Logger.writer = ConsolePrinter(minLevel: LogLevel.info);
log.d('this is a debug message');
log.i('this is an info message');
}
Ignoring logs:
import 'package:quick_log/quick_log.dart';
class ExampleLogger extends Logger {
const ExampleLogger(String name) : super(name, 'ExampleLogger');
}
void main() {
const log = ExampleLogger('LogExample');
Logger.writer = ConsolePrinter(onlyTags: []);
// Or
Logger.writer = ConsolePrinter(exceptTags: [log.name]);
// These messages won't be printed
log.d('this is a debug message');
log.i('this is an info message');
}
Can be used in tests by using the LogStreamWriter:
import 'package:quick_log/quick_log.dart';
test('test', () {
const log = Logger('LogExample');
final writer = LogStreamWriter();
Logger.writer = writer;
log.i('this line was executed');
expect(writer.pastMessages.length, 1);
expect(writer.lastMessage.message, 'this is an info message');
});
Please file feature requests and bugs at the issue tracker.