Tag log что это на андроид

Tag log что это на андроид

Актуальные it обзоры

MTKLogger в Андроиде — что это такое?

Всем привет! Сегодня мы кратко расскажем про Андроид приложение — MTKLogger, а вы поймете что это за программа и нужна ли она вам на смартфоне.

Некоторые пользователи Андроид замечают появление неизвестного приложения MTKLogger на своих смартфонах. Автоматическая установка, в наши дни, воспринимается как вирус, но в данном случае спешу вас успокоить — МТК Логгер не является вирусным приложением.

MTKLogger — это программа для сбора и обработки системных логов, работающая на процессорах МТК.

Такой сбор логов ведется на многих ОС, например в Windows это называется «журнал». Все записанные логи сохраняются в отдельную системную папку mtklog. Если говорить о надобности этого приложения для простых пользователей, коих большинство, то программка не пригодится, а вот для тех, кому необходимо иметь всю статистику, тогда МТКЛоггер пригодится.

MTKLogger собирает логи, однако, они имеют размер, и чем больше логов будет сохранятся, тем больше места будет занимать папка mtklog. Это большой минус данного приложения. Если места у вас и так не особо много, тогда вы можете остановить и удалить MTK Logger.

Как удалить приложение?

Для того чтобы убрать MTK Logger и не нагружать систему, необходимо:

  1. Открыть инженерное меню вашего телефона набрав нужную комбинацию — для разных фирм производителей комбинации разные, выберите свою в видео.
  2. Открыть закладку Log and Debugging и выбрать там пункт MTKLogger.
  3. Просмотрите функции MobileLog, NetworkLog, а также ModemLog и установите переключатель в неактивное положение.
  4. Удалите папку mtklog и установочный файл приложения mtklogger.apk в папке systemapp. Для удаления файлов и папок нужны root-права.

На этом все. Надеюсь вы разобрались с тем, что это за программа MTKLogger и сможете удалить её.

Tag log что это на андроид

indianlarry, обязательно. ) Однако это не помогает и после перезагрузки в LogCat логи сыпятся как обычно. Может от прошивки зависит, хотя не должно.

—DEFENDER—, можно. Скрипт для init.d

Работает гораздо надёжней, но надо чтоб была поддержка init.d. Вроде как в файле build.prop можно отключить, но я не заморачивался. А вообще, почитайте тут: Скрипты, твики, собери их все

Сообщение отредактировал jockjoint — 15.09.14, 09:50

в билд проп в инете пишут вот:
# Disable logcat (Android Logger). The will improve performance
logcat.live=disable

но как проверить все ли 4 лога отключаются?
и как узнать отключились ли логи при использование init.d?

Сообщение отредактировал —DEFENDER— — 15.09.14, 10:17

Как включить/отключить уровни журналов в Android?

143 d-man [2010-01-07 07:48:00]

У меня есть множество операторов регистрации для отладки, например.

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

16 ответов

78 Решение Cytown [2010-01-07 13:35:00]

Общим способом является создание имени именованного логического уровня и определение его уровня отладки на основе loglevel.

Позже вы можете просто изменить LOGLEVEL для всех уровней вывода отладки.

185 Dave Webb [2010-01-07 13:27:00]

Verbose никогда не следует компилировать в приложение, кроме как во время разработки. Журналы отладки компилируются, но удаляются во время выполнения. Журналы ошибок, предупреждений и информации всегда сохраняются.

Таким образом, вы можете захотеть удалить дескрипторы журнала Verbose, возможно, используя ProGuard, как это предлагается в другом ответе.

В соответствии с документацией вы можете настроить ведение журнала на устройстве разработки с помощью System Properties. Свойство для установки равно log.tag. , и оно должно быть установлено на одно из следующих значений: VERBOSE , DEBUG , INFO , WARN , ERROR , ASSERT или SUPPRESS . Дополнительная информация об этом доступна в документации для метода isLoggable() .

Вы можете временно установить свойства, используя команду setprop . Например:

В качестве альтернативы вы можете указать их в файле ‘/data/local.prop’ следующим образом:

В более поздних версиях Android требуется, чтобы /data/local.prop был доступен только для чтения. Этот файл читается во время загрузки, поэтому вам необходимо перезапустить его после его обновления. Если /data/local.prop доступен для записи в мире, он, вероятно, будет проигнорирован.

Наконец, вы можете установить их программно, используя метод System.setProperty() .

Самый простой способ — запустить ваш скомпилированный JAR через ProGuard перед развертыванием с конфигурацией вроде:

Это будет — кроме всех других оптимизаций ProGuard — удалите любые подробные записи журнала непосредственно из байт-кода.

18 kdahlhaus [2011-02-06 21:24:00]

Я сделал простой маршрут — создав класс-оболочку, который также использует списки переменных параметров.

Лучше всего использовать API SLF4J + часть его реализации.

Для приложений Android вы можете использовать следующее:

Вы должны использовать

4 larham1 [2011-10-20 22:27:00]

Удаление журнала с помощью proguard (см. ответ от @Christopher) было простым и быстрым, но оно вызвало трассировку стека из производства, чтобы не соответствовать источнику, если в файле было зарегистрировано отладочное ведение журнала.

Вместо этого здесь используется метод, который использует разные уровни регистрации в процессе разработки или производства, предполагая, что proguard используется только в производстве. Он распознает производство, увидев, что proguard переименовал данное имя класса (в примере я использую «com.foo.Bar» — вы замените это на полностью квалифицированное имя класса, которое, как вы знаете, будет переименовано proguard).

В этом методе используется запись в сообществах.

Существует небольшая замена для стандартного класса Android Android — https://github.com/zserge/log

В основном все, что вам нужно сделать, это заменить импорт с android.util.Log на trikita.log.Log . Затем в Application.onCreate() или в каком-то статическом инициализаторе проверьте BuilConfig.DEBUG или любой другой флаг и используйте Log.level(Log.D) или Log.level(Log.E) , чтобы изменить минимальный уровень журнала. Вы можете использовать Log.useLog(false) , чтобы вообще отключить ведение журнала.

Log4j или slf4j также могут использоваться в качестве фреймворков регистрации в Android вместе с logcat. См. Проект android-logging-log4j или поддержка log4j в android

Вот более сложное решение. Вы получите полную трассировку стека, и метод toString() будет вызываться только при необходимости (Performance). Атрибут BuildConfig.DEBUG будет ложным в рабочем режиме, поэтому все журналы трассировки и отладки будут удалены. Компилятор горячей точки имеет возможность удалить вызовы из-за окончательных статических свойств.

2 Donkey [2013-05-15 17:58:00]

Это позволяет вам иметь прекрасный контроль над журналами. Вы можете, например, отключить все журналы или только журналы некоторых пакетов или классов.

Кроме того, он добавляет некоторые полезные функции (например, вам не нужно передавать тег для каждого журнала).

Я создал утилиту /Wrapper, которая решает эту проблему + другие общие проблемы, связанные с журналом.

Утилита отладки со следующими функциями:

  • Обычные функции, предоставляемые классом Log, обернутые LogMode s.
  • Журнал ввода-выхода метода: может быть отключен коммутатором
  • Селективная отладка: отладка определенных классов.
  • Измерение времени выполнения метода: измерение времени выполнения для отдельных методов, а также коллективное время, потраченное на все методы класса.
  • Включите класс в свой проект.
  • Используйте его, как вы используете методы android.util.Log, для начала.
  • Используйте функцию журналов Entry-Exit, разместив вызовы методов entry_log() — exit_log() в начале и конце методов в вашем приложении.

Я попытался сделать документацию самодостаточной.

Предложения по улучшению этой утилиты приветствуются.

Загрузите его из GitHub.

1 Darnst [2013-09-19 18:25:00]

В моих приложениях у меня есть класс, который обертывает класс журнала, который имеет статический логический var, называемый «state». Во всем моем коде я проверяю значение переменной «состояние», используя статический метод, прежде чем писать в журнал. Затем у меня есть статический метод для установки переменной состояния, которая гарантирует, что значение является общим для всех экземпляров, созданных приложением. Это означает, что я могу включить или отключить все протоколирование для приложения одним звонком — даже когда приложение запущено. Полезно для вызовов поддержки. Это означает, что вы должны придерживаться своего оружия при отладке, а не регрессировать, чтобы использовать стандартный класс журнала, хотя.

Также полезно (удобно), что Java интерпретирует логический var как false, если ему не присвоено значение, что означает, что он может быть оставлен как false до тех пор, пока вам не понадобится включить ведение журнала: -)

Мы можем использовать класс Log в нашем локальном компоненте и определить методы как v/i/e/d. Основываясь на необходимости, мы можем позвонить дальше.
пример показан ниже.

здесь сообщение для string , а args — это значение, которое вы хотите распечатать.

1 Jim [2013-03-28 22:54:00]

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

Например, если вы не используете «Журнал». где-либо вне вызова Log.d или Log.e и т.д., вы можете просто найти и заменить все решение для замены «Log». с «//Log». прокомментировать все ваши вызовы регистрации, или, в моем случае, я просто использую System.out.println всюду, поэтому, прежде чем приступать к производству, я просто сделаю полный поиск и замените для «System.out.println» и заменим на «//System.out.println».

Я знаю, что это не идеально, и было бы неплохо, если бы способность находить и прокомментировать вызовы Log и System.out.println были встроены в Eclipse, но до тех пор, пока это не будет самым простым и быстрым и лучшим способом сделайте это, чтобы прокомментировать поиск и заменить. Если вы это сделаете, вам не нужно беспокоиться о несоответствии номеров строк трассировки стека, потому что вы редактируете исходный код, и вы не добавляете никаких накладных расходов, проверяя конфигурацию уровня журнала и т.д.

Для меня часто бывает полезно установить разные уровни журналов для каждой TAG.

Я использую этот очень простой класс-оболочку:

Теперь просто установите уровень журнала на TAG в начале каждого класса:

MTKLogger: что это такое?

На днях мы получили сообщение от Сергея, который пишет, что некоторое время назад на его смартфоне появилась программа MTKLogger. Сергей беспокоится, не является ли программа вирусом и что с ней делать?

MTKLogger — это специальное приложение для сбора системных логов на платформах на базе процессоров MTK. Приложение выполняет ту же самую функцию, что и журнал в операционной системе Windows — сохраняет логи в папке под названием mtklog.

Для чего нужно приложение MTKLogger? Если говорить о простом пользователе, то оно ему банально не нужно, так как он не будет разбираться в огромном количестве информации, содержащейся в логах, и занимающей массу свободного пространства. А вот для тех пользователей, которым логи необходимы, например, для ведения статистики, приложение, несомненно, окажется полезным.

Казалось бы, почему бы не забыть об этом приложение? Дело в том, что размер папки с логами может увеличиваться и увеличиваться настолько, что занимает немало свободного пространства, поэтому от логов стоит избавиться. Чтобы отключить MTKLogger, нужно:

  • Зайти в инженерное меню на устройстве.
  • Найти вкладку Log and Debugging.
  • Выбрать пункт MTKLogger.
  • В настройках отключить с помощью переключателей разделы MobileLog, ModemLog и NetworkLog.
  • Выйти из инженерного меню.
  • Удалить папку mtklog.

Теперь логи не будут создаваться. Включить MTKLogger можно в обратном порядке.

  • Оставить комментарий к статье.

Tag log что это на андроид

I assume most of you are aware of android.util.Log All logging methods accept ‘String tag’ as a first argument.

And my question is How do you usually tag your logs in your applications? I’ve seen some hardcode like this:

This doesn’t look nice because of many reasons:

  • You can tell me this code doesn’t have hardcode, but it does.
  • My application could have any number of classes in different packages with the same name. So it would be hard to read the log.
  • It isn’t flexible. You always have put a private field TAG into your class.

Is there any neat way to get a TAG for a class?

13 Answers

I use a TAG, but I initialise it like this:

This way when I refactor my code the tag will also change accordingly.

I usually create an App class that sits in a different package and contains useful static methods. One of the method is a getTag() method, this way I can get the TAG everywhere.
App class looks like this:

EDIT: Improved per br mob comment ( Thanks :) )

And when I want to use it:

The output of the getTag method is the name of the caller class (with the package name), and the line number where the getTag is called from, for easy debuging.

Go to Android Studio -> preference -> Live Templates -> AndroidLog then select Log.d(TAG, String).

In Template text replace

android.util.Log.d(TAG, «$METHOD_NAME$: $content$»);

android.util.Log.d(«$className$», «$METHOD_NAME$: $content$»);

Then click Edit variables and enter className() in the Expression column next to the className Name column.

Now when you type the shortcut logd it will put

You dont need to define a TAG anymore.

I like to improve Yaniv answer if you have the log in this format (filename.java:XX) xx line number you can link the shortcut the same way gets linked when there’s an error, this way I can get direct to the line in question just by click on the logcat

I put this inside my extended Application so i can use in every other file

I have created a class of Static variables, methods and classes named as S .

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

17 + 17 =