Flutter应用被终止/杀死后如何接收其运行日志?
Flutter应用被杀死状态下获取终端日志的解决方案
Android 平台
直接使用系统级的adb logcat命令抓取日志,该命令会读取安卓系统全局的日志缓冲区,不受应用生命周期状态限制,哪怕应用被杀死后被通知服务拉起,新进程的日志也会被捕获。默认debug构建的android:debuggable属性已经为true,无需额外修改配置:
- 按应用包名过滤专属日志的命令:
把# macOS/Linux 环境 adb logcat | grep "com.your.package.name" # Windows 环境 adb logcat | findstr "com.your.package.name"com.your.package.name替换为你自己应用的包名即可,终端会持续输出匹配的日志内容。 - 若要仅过滤Flutter层的打印内容,可以使用更精准的过滤规则:
adb logcat Flutter:* *:S | grep "com.your.package.name" - 如需长时间保存日志到本地文件,使用命令:
adb logcat -f ./flutter_app_log.txt com.your.package.name:D *:S
iOS 平台
使用macOS自带的系统日志工具即可捕获被杀死应用的拉起日志,无需打开Xcode:
- 终端执行以下命令,替换为你应用的包ID:
命令运行后会持续输出对应应用的所有日志,包括被后台通知唤醒时的打印内容。log stream --predicate 'bundleID == "com.your.package.name"' --level debug
注意事项
- 必须使用debug构建版本测试,release版本默认会禁用调试日志输出,无法捕获打印内容
- 若使用
firebase_messaging等推送插件处理杀死状态的通知,需要确保你在onBackgroundMessage回调中添加了对应的打印逻辑,日志才会输出
内容的提问来源于stack exchange,提问作者saeid teroda
相关产品推荐
相关产品推荐

