Android应用程序的日志文件位置建议是什么?
有人可以帮助我什么是最好的方式来创建日志文件的所有限制由android喜欢 基本上,我对日志文件的位置建议感兴趣,如果它应该被放置的话Android应用程序的日志文件位置建议是什么?,android,logging,Android,Logging,有人可以帮助我什么是最好的方式来创建日志文件的所有限制由android喜欢 基本上,我对日志文件的位置建议感兴趣,如果它应该被放置的话 到目前为止,我一直在使用Environment.getExternalStorageDirectory(),它已被弃用。Android 11确实受到了很大的限制。为什么不为此使用默认的android.util.Log?如果有充分的理由,并且您不需要通过应用程序以外的方式将其公开给用户,只需将其放入应用程序文件夹(context.filesDir,请参阅)。如果
到目前为止,我一直在使用Environment.getExternalStorageDirectory(),它已被弃用。Android 11确实受到了很大的限制。为什么不为此使用默认的android.util.Log?如果有充分的理由,并且您不需要通过应用程序以外的方式将其公开给用户,只需将其放入应用程序文件夹(context.filesDir,请参阅)。如果要使其在外部可用,则需要请求权限,启动文件夹选择意图,并存储权限以供以后使用。除非你真的需要,否则我建议你不要这样做 如何将日志写入文件的简短(不完整)示例
object Out {
private var dLogFile: File = null
fun init(ctx: Context) {
dLogFile = File(ctx.filesDir, "status.log")
if (dLogFile.length() > 512 * 1024) FileUtil.moveFile(dLogFile)
FileUtil.writeLines(dLogFile, "== Status log @ ${DateUtil.getPrintDate(DateTime.now())} ==")
}
fun i(tag: String, line: String) {
Log.i(tag, line)
FileUtil.writeLines(dLogFile, getTag('I', tag) + line)
}
}
object FileUtil {
fun writeLines(logFile: File?, vararg lines: String?) {
FileWriter(logFile, true).use {
for (line in lines) {
it.write(line)
it.write(NEWLINE)
}
it.flush()
}
}
}
尊敬的Mike您可能应该描述如何使用/访问日志文件。这些文件是否会被第三方应用程序或通过最终用户说明或其他方式访问?最终用户将使用这些文件。。基本上是为了调试。例如:如果应用程序崩溃。。。或者由于我们的业务逻辑,通知无法到达设备。。或者某个功能在我们要求用户与android.util.Log共享日志的设备中不起作用。是否可以将日志写入文件?这样,用户可以发送它,如果有任何破损?在这种情况下,您需要将其写入文件。一定要旋转它。我会更新一个例子的答案。。。将在itu上探索忘记更新答案