Flutter日志记录插件telelog的使用
Flutter日志记录插件telelog的使用
简介
Telelog 是一个轻量级的Flutter包,用于将消息直接记录到Telegram Bot。你可以轻松地将日志、调试信息或通知发送到你的Telegram聊天中,只需最少的设置。非常适合实时监控应用或调试。
动机
如果Telegram几乎成了你的第二个家,为什么不把它也变成你的日志中心呢?这个包允许你直接将日志和更新发送到你的Telegram聊天,这样你就可以在假装只是查看消息的同时掌握应用的表现。生产力从未如此便捷——或者说如此隐蔽。
开始使用
前置条件
- 使用BotFather创建一个bot,并获取你的API Token。
- 使用UserInfoBot获取需要接收通知的用户的ID。
初始化Logger实例
首先,你需要初始化logger实例:
Telelog.instance.init(
apiToken: 'your api token',
usersIds: ['your chat id']
);
然后,你可以使用以下方法发送消息给用户:
Telelog.instance.i(message: 'Hello World', parameters: {
'app name': 'my cool app',
});
日志级别
该包提供了几种日志级别来帮助区分日志类型:
级别 | 方法 | 替代方法 |
---|---|---|
Debug | Telelog.instance.d |
Telelog.instance.debug |
Info | Telelog.instance.i |
Telelog.instance.info |
Warning | Telelog.instance.w |
Telelog.instance.warning |
Error | Telelog.instance.e |
Telelog.instance.error |
Fatal | Telelog.instance.f |
Telelog.instance.fatal |
示例Demo
以下是一个完整的示例demo,展示了如何在Flutter应用中使用Telelog插件:
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:telelog/telelog.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
TextEditingController controller = TextEditingController();
[@override](/user/override)
void initState() {
Telelog.instance.init(apiToken: 'Your api token', usersIds: ['Your user id']);
super.initState();
}
void sendMessage() {
final String devicePlatform = Platform.isIOS ? 'Ios' : Platform.isAndroid ? 'Android' : 'Others';
Telelog.instance.i(message: controller.text, parameters: {
'Mobile platform': devicePlatform,
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text('Telelog'),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'Try sending a message',
),
SizedBox(height: 24),
TextField(
controller: controller,
decoration: InputDecoration(border: OutlineInputBorder()),
)
],
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: sendMessage,
child: const Icon(Icons.send),
),
);
}
[@override](/user/override)
void dispose() {
controller.dispose();
super.dispose();
}
}
更多关于Flutter日志记录插件telelog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复