首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >丢失logcat消息

丢失logcat消息
EN

Stack Overflow用户
提问于 2017-07-09 01:52:25
回答 1查看 1.7K关注 0票数 1

我有两门课,A1A2。两者都继承了BaseActivity,而后者又继承了AppCompatActivity

BaseActivity有大量跟踪活动生命周期方法的日志语句。像这样:Log.d(tag, "in onCreate");

按照预期,这些消息是从A1记录的,而不是从记录的。我尝试过从AS和命令行监视logcat。我可以在几个Android仿真器和几个dev环境中重复这个问题。

如果我简单地将Log.d(tag, "in onCreate")替换为System.out.println(tag + ": in onCreate"),那么所有预期的消息都会出现。

现在完全迷惑不解了。有人对我的日志信息有什么建议吗?

编辑添加:

我已经将对Log.d的所有调用替换为对以下方法的调用:

代码语言:javascript
运行
复制
private void log(String message) {
    Log.d("LOGGER", tag);
    Log.d(tag, message);
    System.out.println(tag + ": " + message);
}

下面是两个子类的示例输出:

代码语言:javascript
运行
复制
07-09 10:26:42.036 9657-9657/net.callmeike.android.latest D/LOGGER: A1
07-09 10:26:42.036 9657-9657/net.callmeike.android.latest D/A1: in onCreate
07-09 10:26:42.036 9657-9657/net.callmeike.android.latest I/System.out: A1: in onCreate

07-09 10:27:10.837 9657-9657/net.callmeike.android.latest D/LOGGER: A2
07-09 10:27:10.837 9657-9657/net.callmeike.android.latest I/System.out: A2: in onCreate

实际上,变量tag是驱动问题的因素。有人明白为什么吗?

FWIW:

代码语言:javascript
运行
复制
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="false"
    android:theme="@style/AppTheme"
    >
    <activity
        android:name=".A1"
        android:label="@string/a1_name"
        android:theme="@style/AppTheme.NoActionBar"
        >
    </activity>

    <activity
        android:name=".A2"
        android:label="@string/a2_name"
        android:theme="@style/AppTheme.NoActionBar"
        >

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>

编辑以添加:与活动相关的三个类的源代码:

代码语言:javascript
运行
复制
public abstract class BaseActivity extends AppCompatActivity {
    private final String tag;
    private final int layout;

    public BaseActivity(String tag, int layout) {
        this.tag = tag;
        this.layout = layout;
    }

    protected abstract void test();

    @Override
    protected final void onCreate(Bundle savedInstanceState) {
        Log.d(tag, "in onCreate");
        super.onCreate(savedInstanceState);
        setContentView(layout);

        setSupportActionBar(findViewById(R.id.toolbar));

        findViewById(R.id.fab).setOnClickListener(this::makeSnackbar);
    }

    final void makeSnackbar(View v) {
        Snackbar.make(v, R.string.action_test, Snackbar.LENGTH_LONG)
            .setAction(R.string.action_test, v1 -> test())
            .show();
    }

    // blah blah blah
}

// BaseActivity logs show up in logcat
public class A1 extends BaseActivity {
    private static final String TAG = "A1";

    public A1() {
        super(TAG, R.layout.activity_a1);
    }

    @Override
    protected void test() {
        // blah blah blah
    }
}

// BaseActivity logs do not show up in logcat
public class A2 extends BaseActivity {
    private static final String TAG = "A2";

    public A2() {
        super(TAG, R.layout.activity_a2);
    }

    @Override
    protected void test() {
        // blah blah blah
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-15 05:46:06

我也遇到过类似的问题-- Log命令没有显示我的一些日志消息。

我发现有一些“非法”标签是逻辑猫不会显示的。

在我的例子中,它是"SMS“标签。试着用其他的改变坏的标签。

你可以看看这里- LogCat won't show my logs

我已经搜索了文档,但没有找到任何“非法”标签的列表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44992272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档