我正在尝试设置我的应用程序,以便可以使用logback-android编写日志,然后使用ACRA将它们发送到 Google Docs 。我认为这是可能的,但我遇到的一个问题是在哪里写日志。
这两个库都需要一个硬编码的文件名,所以我不能使用getStorageDirectory()
. 所以,我的第一个问题是,如果您不指定完整路径,日志会写入哪里?我是否必须指定完整路径并将其硬编码为/data/data/com.example/...
?
这是我的配置:
<!-- Logback configuration. -->
<logback>
<configuration>
<appender
name="FILE"
class="ch.qos.logback.core.FileAppender" >
<file>applog.log</file>
<encoder>
<pattern>[%method] %msg%n</pattern>
</encoder>
</appender>
<appender
name="LOGCAT"
class="ch.qos.logback.classic.android.LogcatAppender" >
<tagEncoder>
<pattern>%logger{0}</pattern>
</tagEncoder>
<encoder>
<pattern>[%method] %msg%n</pattern>
</encoder>
</appender>
<root level="debug" >
<appender-ref ref="FILE" />
<appender-ref ref="LOGCAT" />
</root>
</configuration>
</logback>
对于阿克拉:
@ReportsCrashes(formKey = "dDB4dVRlTjVWa05T..........................",
applicationLogFile = "applog.log",
applicationLogFileLines = 150)
但这会产生如下错误,所以很明显我确实需要一个绝对路径。我应该使用什么?
java.io.FileNotFoundException: /applog.log: open failed: EROFS (Read-only file system)
最后一个稍微不相关的问题,我希望能够打印对象地址,例如 [%object :: %method] 会显示 [MyActivity@33c0d9d :: onCreate] 或类似的东西。有没有办法做到这一点?