_logger.i(‘info message’);
_logger.w(‘warning message’);
_logger.e(‘error message’);
_logger.wtf(‘wft message’);
}
下图是上面代码所打印出来的效果。
logger 除了使用简单之外,输出的日志也很优美。在 Logger 的构造函数中,我们可以传入特定的打印器、过滤器、输出位置等参数自由配置,下面是 Logger 的构造函数。
Logger({
LogFilter? filter, // 过滤器,可以区分开发环境与生产环境
LogPrinter? printer, // 打印器,控制日志输出样式和堆栈信息等
LogOutput? output, // 输出器,控制日志输出位置。可以是控制台、文件、内存
Level? level,
}) : _filter = filter ?? DevelopmentFilter(),
_printer = printer ?? PrettyPrinter(),
_output = output ?? ConsoleOutput() {
_filter.init();
_filter.level = level ?? Logger.level;
_printer.init();
_output.init();
}
如果不传入任何参数,默认过滤器是开发者模式,打印器是漂亮的打印器、输出位置是控制台。
简单封装
打印日志在项目中是全局的,为了能在项目中任意地方使用打印功能,最好封装一下,如下是一个简单的封装,Logger 只需要实例化一次,之后在项目中任何地方都可以调用各个级别的打印方法。这里我使用了 PrefixPrinter 打印器包装了 PrettyPrinter 打印器。
class Log {
static Logger _logger = Logger(
printer: PrefixPrinter(PrettyPrinter()),
);
static void v(dynamic message) {
_logger.v(message);
}
static void d(dynamic message) {
_logger.d(message);
}
static void i(dynamic message) {
_logger.i(message);
}
static void w(dynamic message) {
_logger.w(message);