Использование java.util.logging.Logger в файле jar, который будет отображаться в LogCat в Android.

Android Studio 0.8.1
java version "1.7.0_60"

Привет,

Я создал файл jar и вызываю его из своего приложения для Android. Для тестирования я хочу поместить журнал в файл jar, который будет отображаться в окне LogCat.

Я решил использовать класс Java java.util.logging.Logger. Однако, когда я запускаю свое приложение с помощью No Filter, я не вижу отображаемых сообщений журнала.

import java.util.logging.ConsoleHandler;
import java.util.logging.SimpleFormatter;
import java.util.logging.Handler;
import java.util.logging.Logger;
import java.util.logging.Level;

public class RequestFactory extends WebServiceRequestFactory {
    private static final Logger log = Logger.getLogger("RequestFactory");

    public RequestFactory() {
        ConsoleHandler consoleHandler = new ConsoleHandler();
        log.addHandler(consoleHandler);
        consoleHandler.setFormatter(new SimpleFormatter());

        log.log(Level.FINE, "LOG: Initialized overloaded constructor");
        System.out.println("Initialized overloaded constructor");
    }
    .....

Я установил вышеуказанное для отображения в консоли. Однако System.out.println всегда выводится. Однако я не хочу использовать System.out.println для отображения сообщений журнала.

Если возможно, я хотел бы придерживаться класса ведения журнала Java.

В окне LogCat я вижу System.out.println(...), но не log.log(...):

I/System.out﹕ Initialized overloaded constructor

Я делаю что-то не так здесь?

Большое спасибо за любые предложения


person ant2009    schedule 09.07.2014    source источник
comment
Почему бы не использовать Log Android напрямую? -- Вы видели stackoverflow.com/a/9047282/1015327?   -  person JimmyB    schedule 09.07.2014
comment
Потому что я создаю банку с многоплатформенной целью и не хочу импортировать в нее какие-либо классы Android.   -  person ant2009    schedule 09.07.2014


Ответы (1)


Уровень по умолчанию для ConsoleHandler: ИНФОРМАЦИЯ. Уровень по умолчанию для регистратора: унаследовал от своего родителя. По умолчанию для корневого регистратора обычно установлено значение INFO. Сообщение журнала FINE не будет отображаться при использовании настроек по умолчанию. Измените уровень журнала ConsoleHandler на ВСЕ и измените уровень регистратора на FINE.

log.setLevel(Level.FINE);
consoleHandler.setLevel(Level.ALL);
person jmehrens    schedule 09.07.2014