我想介绍一些我正在接管的Android应用程序的日志记录。我希望能够在开发期间引用此日志文件,并且如果客户在程序生产期间出现问题,则获取日志副本。
由于这将在生产中,我希望将日志文件变为滚动日志,因此它不会消耗太多资源。
在一些Android示例中,我注意到import android.util.Log;
。我很好奇这是否是Android的标准记录方式。如果没有,这样做的好方法是什么(例如我在java中编码时真的喜欢log4j)?
android.util.log可以像我要求的那样做滚动日志吗?
默认情况下android.util.Log在哪里写?
如果只是为了控制台,有没有办法将其写入Android设备上的滚动日志文件,如果该程序出现问题,可以通过电子邮件发送?
答案 0 :(得分:1)
首先。您不应在生产代码中默认启用大量日志记录。我们通过编写默认日志类的扩展来解决它。
有了它,开发代码中的日志记录是默认的,生产代码中的默认值是off。您可以编写一些小的隐藏启用程序,以便您的客户可以在必要时激活日志记录。
其次使用应用程序存储和检索日志!试试CatLog或类似内容。
祝你好运!public class MyLog {
private static boolean m_Enabled = BuildConfig.DEBUG;
public MyLog() {
}
public static void e(String tag, String msg) {
if (m_Enabled) Log.e(tag, msg);
}
public static void w(String tag, String msg) {
if (m_Enabled) Log.w(tag, msg);
}
public static void i(String tag, String msg) {
if (m_Enabled) Log.i(tag, msg);
}
public static void d(String tag, String msg) {
if (m_Enabled) Log.d(tag, msg);
}
public static void v(String tag, String msg) {
if (m_Enabled) Log.v(tag, msg);
}
public static void enable() {
m_Enabled = true;
}
public static void disable() {
m_Enabled = false;
}
public static boolean isEnabled() {
return m_Enabled;
}
}
答案 1 :(得分:1)
android.util.log可以像我正在请求一样滚动日志吗?
1)不像你要求的那样。日志将会滚动,但对于设备上的所有应用程序,不仅仅是您的应用程序。
默认情况下android.util.Log在哪里写?
2)Android日志系统,可以通过logcat查看。如果您熟悉它,可以将其想象为Windows事件日志。我会下载一个logcat程序并滚动浏览系统日志以熟悉它们。
如果只是为了控制台,有没有办法将其写入Android设备上的滚动日志文件,如果程序出现问题,可以通过电子邮件发送?
3)您可以将自己的滚动日志写入文件系统,然后通过电子邮件发送。但是,您必须实现此功能。您还可以尝试查看是否有可满足您需求的第三方日志工具/库。
答案 2 :(得分:1)