Flutter日志记录插件sm_logger的使用

发布于 1周前 作者 vueper 来自 Flutter

Flutter日志记录插件sm_logger的使用

sm_logger

特性

  • ✅ 支持将日志打印到控制台
  • ✅ 支持将错误信息打印到控制台
  • ❌ 不支持将日志写入文件
  • ❌ 不支持收集崩溃信息

安装

添加依赖

在您的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  sm_logger: ^0.0.1

然后运行以下命令来获取依赖:

dart pub get

或者直接在终端中运行以下命令:

flutter pub add sm_logger

使用示例

下面是一个简单的示例,演示如何在 Flutter 应用程序中使用 sm_logger 插件。

初始化日志记录器

首先,在您的应用程序中初始化日志记录器。通常,建议在 main.dart 文件中进行初始化。

import 'package:flutter/material.dart';
import 'package:sm_logger/sm_logger.dart';

void main() {
  // 初始化日志记录器
  SmLogger.init();
  
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

打印日志

接下来,我们可以在应用程序中打印不同级别的日志。

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();

    // 打印普通日志
    SmLogger.i('这是一条普通日志');

    // 打印警告日志
    SmLogger.w('这是一条警告日志');

    // 打印错误日志
    try {
      throw Exception('这是一个错误');
    } catch (e) {
      SmLogger.e(e);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter 日志记录'),
      ),
      body: Center(
        child: Text('查看控制台输出'),
      ),
    );
  }
}

输出结果

运行上述代码后,您可以在控制台中看到以下输出:

I/flutter ( 7843): 这是一条普通日志
W/flutter ( 7843): 这是一条警告日志
E/flutter ( 7843): [Exception: 这是一个错误]

更多关于Flutter日志记录插件sm_logger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter日志记录插件sm_logger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用sm_logger插件进行日志记录的代码示例。sm_logger是一个功能强大的日志记录插件,可以帮助你在开发和调试过程中轻松记录和管理日志。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加sm_logger依赖:

dependencies:
  flutter:
    sdk: flutter
  sm_logger: ^x.y.z  # 请替换为最新版本号

运行flutter pub get来安装依赖。

2. 初始化Logger

在你的应用入口文件(通常是main.dart)中初始化Logger:

import 'package:flutter/material.dart';
import 'package:sm_logger/sm_logger.dart';

void main() {
  // 初始化Logger
  Logger.init(
    level: LogLevel.verbose, // 设置日志级别
    // 可选:设置日志文件保存路径
    logFilePath: (() -> {
      if (Platform.isAndroid) {
        return '/sdcard/flutter_logs/';
      } else if (Platform.isIOS) {
        // iOS没有直接的文件系统访问权限,通常不设置路径
        return null;
      }
      return null;
    })(),
    // 可选:设置日志文件最大大小(以MB为单位)
    maxFileSize: 5,
    // 可选:设置日志文件的最大数量
    maxFileCount: 3,
    // 可选:设置是否打印到控制台
    printToConsole: true,
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Logger Demo'),
        ),
        body: Center(
          child: LoggerDemo(),
        ),
      ),
    );
  }
}

3. 使用Logger记录日志

现在你可以在你的应用中任何位置使用Logger来记录日志:

import 'package:flutter/material.dart';
import 'package:sm_logger/sm_logger.dart';

class LoggerDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        ElevatedButton(
          onPressed: () {
            Logger.verbose('This is a verbose log message.');
            Logger.debug('This is a debug log message.');
            Logger.info('This is an info log message.');
            Logger.warn('This is a warn log message.');
            Logger.error('This is an error log message.');
          },
          child: Text('Log Messages'),
        ),
        ElevatedButton(
          onPressed: () {
            // 你可以记录对象或JSON
            var jsonObject = {
              'key1': 'value1',
              'key2': 'value2',
            };
            Logger.json(jsonObject);
          },
          child: Text('Log JSON'),
        ),
      ],
    );
  }
}

4. 查看日志

  • 控制台:如果printToConsole设置为true,日志将同时打印到控制台。
  • 日志文件:日志文件将保存到指定的路径(在Android上通常是/sdcard/flutter_logs/)。你可以通过文件管理器查看这些日志文件。

注意事项

  • 在iOS上,由于权限限制,通常不直接设置日志文件的路径。
  • 确保在发布应用时适当配置日志级别和文件存储,以避免泄露敏感信息或占用过多的存储空间。

通过上述步骤,你就可以在Flutter项目中使用sm_logger插件来记录和管理日志了。希望这个示例能帮助你更好地理解如何集成和使用sm_logger

回到顶部