Мой вопрос, кажется, легко подотчетен, но есть несколько хороших решений. Мне нравится выбирать "лучший".
Доступные рамки (не стесняйтесь предлагать больше):
Плюсы/Минусы:
андролог:
- Pro: Подобно системе ведения журнала Android, поэтому в существующем коде есть только небольшие изменения; Возможность отправлять отчеты о сбоях более подробно в отчете об ошибке (журналы вокруг исключения); Хорошие журналы
- Con: нет стандартного java-метода "getLogger"; Конфигурация производства достижима путем загрузки файла свойств в SDCard; Мне нужно вызвать init logging вручную; Необходимо создать LOG_TAG как константы или взломать его для создания констант тегов журналов по Aspect для достижения стандартного поведения: теги - это имена классов; Когда ведение журнала является бизнес-требованием, нам нужно его протестировать. Тестирование статических вызовов на Android почти невозможно; Логгер не может быть внедрен фреймворком
Log4J-Android:
- Pro: стандартный способ входа в Java; Совместимость с SLF4J; Возможность анализировать файлы свойств;
- Con: нет встроенной системы отчетов о сбоях; Мне кажется: его обычно не используют, поэтому мне может быть опасно его использовать;
SLF4J-Android:
- Pro: Кажется, это будет развито больше людей, таких как Log4J-Android;
logger.debug("Some log message. Details: {}", someObject.toString());
- хороший и эффективный способ пропускать конкатенации строк, если журнал отключен; легкая привязка регистратора, которая делегирует командуandroid.util.Log
. - Con: автоматически создаваемые теги журналов длиной <= 23 символа из-за ограничения длины тегов журнала на платформе Android (например, тег
com.example.myapp.MyClass
, переведенный наc*.e*.m*.MyClass
), что может привести к тому же журналу тег для разных классов (например,com.example.app.MyClass
иcom.example.anotherapp.MyClass
оба переводят наc*.e*.a*.MyClass
); Нет встроенной системы отчетов о сбоях.
Кроме того, мне нравится поведение Androlog, но я разработчик Java, знакомый с log4j/slf4j. Нам определенно нужна система отчетов о сбоях, но есть несколько фреймворков для отчетов о сбоях (помимо отчета об авариях по умолчанию для Android).
Я могу объединить некоторые из них, например, использовать Log4J android, но создать приложение для использования рамки androlog, но рано или поздно это будет беспорядок, чего следует избегать.
Спасибо за ваши предложения, я надеюсь, что результаты помогут решить другие в будущем.
Изменить: Как уже упоминалось ниже, я могу объединить для ex: log4j-android с slf4j (whitch, который я предпочитаю делать, если я буду использовать log4j, потому что поддержка форматирования журнала ( "{}",...)), но он не отвечает на вопрос. Я должен выбрать структуру, тогда я могу украсить ее фасадом SLF4J.