标签: android-log

如何在将应用程序发布到Google Play之前删除所有调试日志记录调用?

据谷歌称,在发布我的Android应用程序之前,我必须" 停用源代码中对Log方法的任何调用 ".摘录自出版物清单的第5部分:

在构建应用程序以进行发布之前,请确保停用日志记录并禁用调试选项.您可以通过删除源文件中对Log方法的调用来停用日志记录.

我的开源项目很大,每次发布时手动执行都很痛苦.此外,删除日志行可能很棘手,例如:

if(condition)
  Log.d(LOG_TAG, "Something");
data.load();
data.show();
Run Code Online (Sandbox Code Playgroud)

如果我对日志行进行注释,则条件适用于下一行,并且可能不会调用load().这种情况是否足够罕见,我可以决定它不应该存在?

这是在官方清单上,所以我想很多人会定期这样做.
那么,如何有效但安全地删除所有日志行?

logging android proguard android-log

381
推荐指数
12
解决办法
16万
查看次数

我应该在创建最终包时评论我的日志调用吗?

我有一个使用很多Log.d()Log.e()调用调用的应用程序.现在我想创建我的最终发布包.Eclipse的Android Export功能提到删除"Debuggable"清单中的标志,我已经完成了.我是否还应该评论所有Log调用以提高应用程序的性能,或者这些调用在不可调试的最终版本包中什么都不做?

android android-log

21
推荐指数
2
解决办法
6664
查看次数

BuildConfig.DEBUG始终返回false

BuildConfig.DEBUG当我运行应用程序时,为什么返回false?

我使用它来控制日志,如下所示:

public static void d(String LOG_TAG, String msg){
    if(BuildConfig.DEBUG){
        Log.d(LOG_TAG,msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-log

15
推荐指数
5
解决办法
5608
查看次数

为什么Android TimingLogger无法打印日志?

我正在尝试使用TimingLogger来检查特定方法及其语句所消耗的时间.但Android TimingLogger无法打印日志.

benchmarking android execution-time android-log

13
推荐指数
1
解决办法
5205
查看次数

如何在Android中捕获调制解调器无线电日志

我需要从Android中的调制解调器无线电日志中捕获一些信息,但我不知道如何捕获它.我搜索了很多,但没有找到.因为我需要一些关于basebandandroid的信息,我发现必须捕获调制解调器日志.

提前致谢.

编辑

在应用程序中编程方式找到了读取logcat以捕获应用程序中的logcat日志

但因为它是adb日志adb logcat -b radio我不知道如何捕获ADB登录应用程序.正如我在一条评论中看到的那样,我怀疑是否有可能.

谢谢

android android-logcat android-log

11
推荐指数
1
解决办法
4042
查看次数

Android Studio不按包名显示日志

在日志中运行项目后添加过滤器,例如"app:My_Package_Name"

在/.idea/workspace.xml中添加:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="AndroidConfiguredLogFilters">
    <filters>
      <filter>
        <option name="logLevel" value="verbose" />
        <option name="logMessagePattern" value="" />
        <option name="logTagPattern" value="" />
        <option name="name" value="app: com.zastavok.net" />
        <option name="packageNamePattern" value="com.zastavok.net" />
        <option name="pid" value="" />
      </filter>
    </filters>
Run Code Online (Sandbox Code Playgroud)

但是在这个过滤器中没有结果: 在此输入图像描述

但如果我将过滤器更改为"无过滤器",则会显示所有结果: 在此输入图像描述

如何通过Package_Name解决日志问题?

logging android android-logcat android-studio android-log

9
推荐指数
1
解决办法
4913
查看次数

什么是com.google.android.gm?

我的一个日志返回以下消息:

12-07 10:42:45.201 6622-17013/? D/DownloadManager: 23 Starting {Apk-apks_1.1.017-812_releaseVersion.apk} by {10112:com.google.android.gm}

我相信com.google.android.gm代表我的Gmail帐户但不确定.需要更多见解.

android logcat android-log

9
推荐指数
1
解决办法
3万
查看次数

Logback-android:日志没有写入文件

尝试使用logback-android重定向日志消息,以便可以将消息保存在文件中.但是,它不会保存到文件中.

这是我的logback.xml文件configration,它存储在我的Android Studio中的src/main/assets

<configuration debug="true">
    <!-- Create a file appender for a log in the application's data directory -->
    <appender name="FILE" class="ch.qos.logback.classic.android.FileAppender">
        <file>/data/com.test.equa/files/log/foo.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Write INFO (and higher-level) messages to the log file -->
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration> 
Run Code Online (Sandbox Code Playgroud)

这是我启动日志记录的一段代码.

 @Override
    public void onCreate() {
        super.onCreate();
        loadData();

        Logger log = LoggerFactory.getLogger(MyActivity.class);
        log.error("Application Data setup in progress");



    }
Run Code Online (Sandbox Code Playgroud)

问题:我继续在logcat中看到消息,但我希望它们存储在我的android sd卡内存中.

在清单中添加了用户权限,用于在SD卡中写入日志

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

我在这个配置中遗漏了一些东西,因为我在logcat中没有看到任何配置错误的错误或消息.有人可以帮助我吗?

android android-logcat android-log

7
推荐指数
1
解决办法
3103
查看次数

使用Timber时,Tag为null

DebugTree日志中,我看到了类名,但是当我创建自定义树时,标签就是null.这是我的自定义树的样子:

public class CrashlyticsTree extends Timber.Tree {
private static final String CRASHLYTICS_KEY_PRIORITY = "priority";
private static final String CRASHLYTICS_KEY_TAG = "tag";
private static final String CRASHLYTICS_KEY_MESSAGE = "message";

@Override
protected boolean isLoggable(int priority) {
    if (priority == Log.VERBOSE || priority == Log.DEBUG || priority == Log.INFO) {
        return false;
    }

    // only log WARN(Timber.w), ERROR(Timber.e), or WTF(Timber.wtf)
    return true;
}

@Override
protected void log(int priority, @Nullable String tag, @Nullable String message, @Nullable Throwable t) {
    if(User.CurrentUser.isLoggedIn()){ …
Run Code Online (Sandbox Code Playgroud)

android android-log timber-android

6
推荐指数
1
解决办法
1852
查看次数

如何获取其他应用程序的日志?

我想从其他应用程序中读取日志并过滤它们,以便在记录某个关键字时,我的应用程序将执行某项任务.

我找到了几种读取日志的方法,但从我的测试中我只能得到我的应用程序日志.

这是我最初尝试使用的方法

try {
  Process process = Runtime.getRuntime().exec("logcat -d");
  BufferedReader bufferedReader = new BufferedReader(
  new InputStreamReader(process.getInputStream()));

  StringBuilder log=new StringBuilder();
  String line = "";
  while ((line = bufferedReader.readLine()) != null) {
    log.append(line);
  }
  TextView tv = (TextView)findViewById(R.id.textView1);
  tv.setText(log.toString());
  } 
catch (IOException e) {}
Run Code Online (Sandbox Code Playgroud)

但它似乎只读取我的应用程序的日志.

java android android-logcat android-log

6
推荐指数
1
解决办法
732
查看次数