You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android 9.0下Tinylog 1.3.5文件日志支持问题及解决方案

Tinylog在Android平台的日志文件写入问题解答

我来帮你捋捋Tinylog在Android上的日志文件写入问题:

关于Tinylog 1.3.5(1.x最新版)的支持情况

明确说:Tinylog 1.x分支完全支持Android平台写入日志文件,你之前没生成文件的问题,主要是路径权限和配置细节没踩对。

问题排查与解决要点

  • 路径权限是核心原因:你一开始用log.txt作为文件名,默认会写到APP的安装根目录,但从Android 6.0(API 23)开始需要动态申请外部存储权限,而API 28又进一步限制了外部存储的直接访问。你最终用的/data/user/0/com.apppackage.my/files/log.txt是APP的私有内部存储路径,这个路径属于APP专属空间,系统默认允许读写,不需要额外申请权限,所以能正常生成日志文件。
  • 配置格式要规范:确保tinylog.properties里的配置项是单独一行的,正确格式应该是:
    tinylog.writer = file
    tinylog.writer.filename = /data/user/0/com.apppackage.my/files/log.txt
    
    另外,1.x版本还支持日志滚动等进阶配置,比如:
    # 单个日志文件最大10MB
    tinylog.writer.file.size = 10MB
    # 最多保留5个备份文件
    tinylog.writer.file.backups = 5
    

关于Tinylog 2.0.0-M2.1版本无日志输出的问题

这个版本是预发布的里程碑测试版,兼容性问题比较多,不建议在生产环境用。2.x分支和1.x的API、配置逻辑差异很大:

  • 首先要确认依赖是否正确引入,2.x针对Android有专门的模块,不能直接用通用Java的依赖;
  • 配置格式也有变化,比如写入器的配置前缀、日志级别过滤规则都不一样,而且这个预览版可能默认日志级别设得很高,导致Logger.info这类日志被过滤掉。如果想尝试2.x,建议直接用最新的稳定正式版,能避开很多坑。

内容的提问来源于stack exchange,提问作者Wayne

火山引擎 最新活动