读取通过slf4android记录的文件?

Mat*_*son 5 logging android slf4j slf4android

我正在使用slf4android(https://github.com/bright/slf4android)编写日志,但是如何阅读它们并不明显(理想情况下我只想将它们下载到我的计算机上).其他应用无法访问该应用的内部存储空间.我可以配置slf4android来登录共享目录吗?我试过这个,但我得到了通知:

FileLogHandlerConfiguration fileHandler = LoggerConfiguration.fileLogHandler(this);
File lol = this.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
fileHandler.setFullFilePathPattern(fileHandler.toString() + "/my_log.%g.%u.log");
LoggerConfiguration.configuration().addHandlerToRootLogger(fileHandler);
Run Code Online (Sandbox Code Playgroud)

kli*_*mat 9

通过以下方式配置日志记录到文件后:

FileLogHandlerConfiguration fileHandler = LoggerConfiguration.fileLogHandler(this);
fileHandler.setFullFilePathPattern("/sdcard/your.package/my_log.log");
LoggerConfiguration.configuration().addHandlerToRootLogger(fileHandler);
Run Code Online (Sandbox Code Playgroud)

有两种(两种简单的)方法来获取日志文件:

  1. 使用NotifyDeveloperHandler(我最喜欢的)

    slf4android有一个非常好的功能(由于某种原因没有记录),它允许发送电子邮件到给定的地址,其中包含附件中的日志和屏幕截图.

    NotifyDeveloperHandler handler = LoggerConfiguration.configuration().notifyDeveloperHandler(this, "example@gmail.com");
    handler.notifyWhenDeviceIsShaken();
    LoggerConfiguration.configuration().addHandlerToRootLogger(handler);
    
    Run Code Online (Sandbox Code Playgroud)

使用(字面意思)非常方便,因为你可以通过摇动你的设备来触发发送动作.

在此输入图像描述 在此输入图像描述

  1. 运用 adb

    adb pull /sdcard/your.package/my_log.log ~/my_log.log在终端中运行,将日志文件从设备复制到主目录.


sht*_*lik 0

在代码示例中,您提供的条件是您实际上并未使用您定义的“File lol”。所以它可能会失败,因为您尝试在第一个日志之上创建另一个日志(例如在“/sdcard/your.package/my_log.%g.%u.log/my_log.%g.%u.log”中);

尝试:

File lol = this.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
fileHandler.setFullFilePathPattern(lol.getAbsolutePath() + "/my_log.%g.%u.log");
Run Code Online (Sandbox Code Playgroud)

但是您也可以添加一个菜单选项,单击该选项即可找到日志,可以将它们压缩(与数据库或其他什么一起)并通过电子邮件发送,上传到服务器或只是复制到另一个文件夹。