Есть ли способ заменить стандартный вход в Android? - PullRequest
6 голосов
/ 18 июля 2011

Есть ли способ каким-то образом перехватить вызовы стандартного входа в Android и выполнить какое-то другое действие?

В настольной Java обычно можно получить какой-нибудь регистратор, поэтому есть способы установить другой обработчик / реализацию ведения журнала.,Тем не менее, Android, кажется, имеет статический вызов Log, и я не смог найти никакой информации о замене поведения по умолчанию.

Я понимаю, что могу отслеживать журнал устройства через ADB, но я хотел бы иметьразличное поведение при запуске приложений на устройстве, которое подключилось (например, при выполнении определенной инструкции при запуске программы).

Ответы [ 4 ]

4 голосов
/ 18 июля 2011

Как указывает AedonEtLIRA, журнал является окончательным, поэтому вам нужно бросить / одолжить новый.Я использую "MLog" от Prasanta Paul: http://prasanta -paul.blogspot.com / 2010/07 / custom-logger-for-android.html

Это легкосохранить журналы в текстовый файл и / или полностью отключить ведение журнала.Если он еще не делает то, что вам нужно, это хорошая база для управления журналированием.

3 голосов
/ 04 января 2012

В дополнение к MLog, предложенному @Darrell, есть несколько других каркасов ведения журналов для Android, включая:

Из трех, logback (log4j следующего поколения) представляется наиболее способным и обладает самым богатымAPI (и много документации), в то время как microlog является наиболее компактным (но ограниченным по возможностям ... но, возможно, он делает все, что вам нужно).Все три поддерживают SLF4J фасад для ведения журнала, так что вы можете легко заменить microlog на logback, log4j, jul или какой-либо более новый фреймворк в будущем.

Как и в MLog, эти фреймворки требуют заменывызовы на android.os.util.Log (он не «перехватывает» вызовы, как вы могли бы после).

3 голосов
/ 18 июля 2011

Я думаю, что вашим лучшим решением было бы заменить все вызовы Log в вашем приложении своим собственным классом MyLog, затем позвонить Log, если они не согласны, и вызвать вашу специальную функцию ведения журнала. если они согласны.

Замена всех вызовов журнала не должна быть сложной, просто найти и заменить.

2 голосов
/ 18 июля 2011

Поскольку Log является окончательным, я думаю, вам придется написать свою собственную систему регистрации и реализовать ее, если вы хотите что-то изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...