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)
通过以下方式配置日志记录到文件后:
FileLogHandlerConfiguration fileHandler = LoggerConfiguration.fileLogHandler(this);
fileHandler.setFullFilePathPattern("/sdcard/your.package/my_log.log");
LoggerConfiguration.configuration().addHandlerToRootLogger(fileHandler);
Run Code Online (Sandbox Code Playgroud)
有两种(两种简单的)方法来获取日志文件:
使用NotifyDeveloperHandler(我最喜欢的)
slf4android有一个非常好的功能(由于某种原因没有记录),它允许发送电子邮件到给定的地址,其中包含附件中的日志和屏幕截图.
NotifyDeveloperHandler handler = LoggerConfiguration.configuration().notifyDeveloperHandler(this, "example@gmail.com");
handler.notifyWhenDeviceIsShaken();
LoggerConfiguration.configuration().addHandlerToRootLogger(handler);
Run Code Online (Sandbox Code Playgroud)使用(字面意思)非常方便,因为你可以通过摇动你的设备来触发发送动作.
运用 adb
adb pull /sdcard/your.package/my_log.log ~/my_log.log在终端中运行,将日志文件从设备复制到主目录.
在代码示例中,您提供的条件是您实际上并未使用您定义的“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)
但是您也可以添加一个菜单选项,单击该选项即可找到日志,可以将它们压缩(与数据库或其他什么一起)并通过电子邮件发送,上传到服务器或只是复制到另一个文件夹。