System.out для Android Logcat в Eclipse

Я работаю над проектом Android с некоторыми классами, которые я планирую использовать как чистый Java.jar (для использования в других проектах, связанных с Java). В этих чистых классах Java я использую System.out для регистрации. Это также приложение для Android, поэтому на моих занятиях по Android я, очевидно, использую Log.

При мониторинге чистых классов Java я не могу распечатать System.out в своем логарифме Eclipse. Хотя я вижу System.err.

Кто-нибудь знает, как заставить System.out отображаться в LogCat на этом легендарном уровне Log.i?

Настройка

  1. Nexus 7 – Android 4.4.4 – стоковая версия
  2. Затмение Кеплер
  3. Android SDK 21
  4. Убунту 12.04 64 бит
  5. Вкладка «Мониторинг всех сообщений» в Logcat, logcat настроен на подробный

Я пытался

adb root
adb shell start
adb shell setprop log.redirect-stdio true
adb shell stop
  • Logcat настроен на подробный
  • Ничего в консоли под Android или DDMS

person Constantin    schedule 28.08.2014    source источник
comment
Напишите оболочку журнала или используйте существующую.   -  person Dave Newton    schedule 28.08.2014
comment
@DaveNewton System.out печатается в логарифме, верно? :)   -  person An SO User    schedule 28.08.2014
comment
Что вы имеете в виду под лог-оболочкой? Когда вы говорите log, вы имеете в виду класс Android Log или общий глагол log? Что я заворачиваю? System.out ? Разве мы не застряли в той же ситуации тогда?   -  person Constantin    schedule 28.08.2014
comment
Обертка журнала была бы ненужной, вы можете лучше решить проблему, которая у вас есть - редактировать: потому что обычно System.out печатается в logcat   -  person WHDeveloper    schedule 28.08.2014
comment
@WHDeveloper Да, у меня такое же впечатление от того, что я прочитал. Я думаю, что это где-то настройка, но я не могу ее найти.   -  person Constantin    schedule 28.08.2014
comment
У вас есть пользовательский ROM OP?   -  person WHDeveloper    schedule 28.08.2014
comment
@WHDeveloper Нет, обновил настройку, чтобы сослаться на это, это полезно знать.   -  person Constantin    schedule 28.08.2014
comment
Что я нашел: это   -  person WHDeveloper    schedule 28.08.2014
comment
Да, я читал это и несколько других переполнений стека.   -  person Constantin    schedule 28.08.2014
comment
Тогда комментарий был излишним, потому что AOSP android, вероятно, не сделал бы этого (по крайней мере, я так думаю)   -  person WHDeveloper    schedule 28.08.2014
comment
Хорошо, если вы обновите сообщение тем, что вы уже пробовали, это поможет нам опубликовать более актуальную информацию, а не то, что вы уже пробовали!   -  person WHDeveloper    schedule 28.08.2014
comment
Какой фильтр у вашего logcat?   -  person WHDeveloper    schedule 28.08.2014
comment
Использование вкладки Все сообщения   -  person Constantin    schedule 28.08.2014


Ответы (1)


Теперь вы можете отправлять журналы проекта Pure Java, например, на уровень предупреждения...

    OutputStream os = new OutputStream() {

        @Override
        public synchronized void write(byte[] buffer, int offset, int len) {
            Log.w("blah", new String(buffer));
        }

        @Override
        public void write(int oneByte)
                throws IOException {
            // Not really sure what to do here...
        }
    };
    System.setOut(new PrintStream(os));
    System.out.println("Adam.");
person TacB0sS    schedule 28.08.2014
comment
За исключением того, что теперь мои чистые классы Java связаны с классами Android, в частности Log - person Constantin; 29.08.2014
comment
Он хочет иметь банку с классами, которые можно использовать как в Android, так и в обычных java-проектах, импорт журнала будет работать только на Android, а не в обычных java-проектах. - person WHDeveloper; 29.08.2014
comment
Верно, но он может сделать это из проекта Android, и это будет применяться ко всему коду, работающему в jvm... разве это не то, чего он хочет? - person TacB0sS; 29.08.2014
comment
Я ожидаю вытащить некоторые из этих классов в проект, основанный исключительно на Java, который будет преобразован в библиотеку для использования в будущих проектах Java, не работающих на Android JVM. - person Constantin; 29.08.2014
comment
Вам нужно написать этот код в своем проекте Android, предпочтительно в вашем CustomApplication.onCreate() или в виде статического блока в вашем первом действии. Это не имеет ничего общего с вашим кодом или с тем, как вы разбиваете его на проекты, и не повлияет на другой чистый проект Java. - person TacB0sS; 29.08.2014