Dart| Flutter:在应用程序中添加日志的教程及实例

617 阅读3分钟

本教程解释了如何在dart和flutter应用程序中添加日志?

Logging 是用来记录不同类型的消息,如信息、错误和调试信息,帮助开发人员调试错误和问题。

目前,在Dart中有两类流行的库

  • Dart日志
  • Dart日志器

您可以在Dart和Flutter应用程序中添加这些记录器

我们将在Dart应用程序中使用日志库。

如何在Dart应用程序中使用日志,并举例说明?

首先,将日志依赖性添加到pubspec.yml

name: dartapp
description: >-
   dart example application.
version: 1.0.0

environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  logging: any
dev_dependencies:
    intl: any

接下来,使用以下命令安装该依赖性dart pub install 在dart中安装依赖性flutter pub install 在flutter中安装依赖性

一旦依赖性安装完毕,请遵循以下步骤

  • 在你的代码中导入日志包

然后在你的dart代码中,导入以下包

import 'package:logging/logging.dart';

接下来,首先,初始化一个Logger类的对象,并给它传递一个唯一的字符串。

final log = Logger('LoggingExample');

在你配置了Levels和onRecord listen之前,日志不会打印任何东西。

listen方法应该记录不同的自定义消息

LEVEL.INFO是一个默认的日志,它记录信息消息,它不记录调试消息。

LEVEL.ALL:它打印所有的日志信息

  Logger.root.level = Level.ALL; // defaults to Level.INFO
  Logger.root.onRecord.listen((record) {
    print('${record.level.name}: ${record.time}: ${record.message}');
  });

接下来,使用不同的方法记录消息。

  log.info("log info method");

让我们看看启用不同LEVEL.INFO的不同例子。

Dart日志LEVEL.ALL例子

import 'package:logging/logging.dart';

final log = Logger('LoggingExample');

void main() {
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    print('${record.level.name}: ${record.time}: ${record.message}');
  });

  // log message with different methods
  log.shout("log shout method");
  log.severe("log severe method");
  log.warning("log warning method");
  log.info("log info method");
  log.config("log config method");
  log.fine("log fine method");
  log.finer("log finer method");
  log.finest("log finest method");
}

输出:它记录了所有包含不同级别的消息类型

SHOUT: 2022-07-03 09:51:00.894768: log shout method
SEVERE: 2022-07-03 09:51:00.894768: log severe method
WARNING: 2022-07-03 09:51:00.894768: log warning method
INFO: 2022-07-03 09:51:00.894768: log info method
CONFIG: 2022-07-03 09:51:00.904131: log config method
FINE: 2022-07-03 09:51:00.904131: log fine method
FINER: 2022-07-03 09:51:00.904131: log finer method
FINEST: 2022-07-03 09:51:00.904131: log finest method

接下来,将日志级别改为OFF

  Logger.root.level = Level.OFF;

输出:它不打印任何日志信息。

下一步,将日志记录级别改为INFO

  Logger.root.level = Level.INFO;

它在输出下面打印信息消息。

SHOUT: 2022-07-03 09:53:48.817704: log shout method
SEVERE: 2022-07-03 09:53:48.823688: log severe method
WARNING: 2022-07-03 09:53:48.823688: log warning method
INFO: 2022-07-03 09:53:48.824687: log info method

下一步,将日志记录级别改为CONFIG

  Logger.root.level = Level.CONFIG;

输出:

SHOUT: 2022-07-03 09:54:31.165708: log shout method
SEVERE: 2022-07-03 09:54:31.174165: log severe method
WARNING: 2022-07-03 09:54:31.174165: log warning method
INFO: 2022-07-03 09:54:31.174165: log info method
CONFIG: 2022-07-03 09:54:31.174165: log config method

随着上述不同级别的配置,它显示不同的日志信息。

Dart日志记录级别

目前,它支持以下级别

Level.OFF: 禁用日志记录 Level.SHOUT: 记录喊叫信息 Level.SEVERE: 记录严重错误 Level.WARNING: 记录警告 Level.INFO: 记录有用信息 Level.CONFIG: 记录配置信息 Level.FINE: 以FINE级别记录成功信息 Level.FINER: 以FINER级别记录成功信息 Class.FINEST: 以FINEST级别记录成功信息