Journal
A simple log writer and subscriber usable both from libraries and applications.
Example
To create a journal, simply instantiate Journal
with a unique name, normally the name of the
package that emits the entries.
import 'package:journal/journal.dart';
const journal = Journal('http_server');
Following that, you can simply log entries.
journal.info('Started HTTP server.', values: {'port': port.toJournal});
if (address.isUnbound) {
journal.warn('Be careful when not binding the server to a concrete address.');
}
Default output
The default output uses a pretty-printed format on all supported platforms.
Note that you might need to set Journal.forceFormatTerminalOutput
to get properly formatted
output in your terminal.
Default output in Windows Terminal
Default output in Mozilla Firefox
Default output in Google Chrome
Configuration
To configure journal
, you can either implement your own JournalOutput
or override the parameters
of the default one.
Journal.outputs = const [
DefaultJournalOutput(
displayTimestamp: true,
displayLevel: true,
displayZone: false,
displayName: true,
displayTrace: true,
),
];
Compatibility
For compatibility with the logging
package, simply direct its records to journal
.
import 'package:logging/logging.dart'
Logger.root.onRecord.listen((record) {
Journal.record(
record.loggerName,
JournalEntry.fromLogging(record),
);
});
Release history
See the changelog for a detailed list of changes throughout the package's history.
Libraries
- android
- A library providing a JournalOutput implementation for Android Logcat.
- developer
- Developer-facing utility functions to ease the implemention of custom JournalOutputs.
- journal
- A simple log writer and subscriber usable both from libraries and applications.