strlog 2.0.0-rc.2 copy "strlog: ^2.0.0-rc.2" to clipboard
strlog: ^2.0.0-rc.2 copied to clipboard

Structured, hierarchical, leveled logger with dozens of log record handlers out of the box.

strlog · Test Status #

strlog.dart demo

Structured, hierarchical, leveled logging for Dart.

Features:

  • Built-in primitives for bound structured record context
  • Leveled records
  • Built-in configurable text and JSON log formatters
  • Built-in support for filtering records
  • Dozens of log record handlers out of the box

The strlog package exposes three types of loggers: hierarchical, detached, and noop loggers.

A hierarchical logger is a tree-like logging structure allowing child loggers to forward records to higher-level loggers, all the way up to the highest-level logger, i.e., the root logger. The hierarchy of loggers is defined based on the logger name. The name represents a dot-separated string, where each part defines a hierarchy level.

In contrast, a detached logger is a hierarchy-free logger, meaning that it does not have a parent or children.

Lastly, a noop logger discards any records it receives.

Usage #

Use dart pub to get the package:

$ dart pub add strlog

Once the package is installed, it's ready to be used.

Getting started #

The easiest way to start logging records is to use the global logger provided in the global_logger package library. The global logger comes preconfigured to print logs to the console using print.

import 'package:strlog/global_logger.dart' as logger;
import 'package:strlog/strlog.dart' as log;

void main() async {
  logger.info('Greeting', const [log.Str('hello', 'world')]);
}

// => '2019-06-27 15:37:38.046859 [INFO]: Greeting hello=world'

To override the default logger, you can use the set function exposed by the global_logger package:

import 'package:strlog/formatters.dart';
import 'package:strlog/global_logger.dart' as logger;
import 'package:strlog/handlers.dart';
import 'package:strlog/strlog.dart' as log;

final handler = ConsoleHandler(formatter: JsonFormatter.withDefaults());
final _logger = log.Logger.getLogger('strlog.example')..handler = handler;

void main() async {
  // Set the newly created logger as the global one.
  logger.set(_logger);

  logger.info('Greeting', const [log.Str('hello', 'world')]);

  await handler.close();
}

For more detailed information, check out the documentation at strlog.inout.gg.

License #

Released under the MIT license.

2
likes
160
points
209
downloads

Publisher

verified publisherinout.gg

Weekly Downloads

Structured, hierarchical, leveled logger with dozens of log record handlers out of the box.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

file, meta, path

More

Packages that depend on strlog