Автор оригинала: Pankaj Kumar.
Tiny Log – это простая и легкая платформа ведения журнала для Java. Мы можем использовать tiny log с приложениями Java, Kotlin, Scala и Android.
Преимущества платформы ведения журнала Tiny Log
- Позволяет избежать шаблонного кода инициализации регистратора. Класс регистратора в tinylog является статическим и используется непосредственно для регистрации сообщений.
- Поддержка других популярных языков JVM, таких как Kotlin и Scala.
- Поддержка приложений для Android тоже с помощью logcat.
- Крошечные бревенчатые банки легкие и небольшого размера. Jar API версии tiny log 2.x составляет 48 КБ, а jar реализации-только 72 кб.
- Выходные данные могут быть отправлены в консоль, файл, базу данных с помощью JDBC и источника данных.
- Файл конфигурации очень прост. Для простого ведения журнала на основе консоли нам не нужен какой-либо файл конфигурации.
- Это бесплатно и с открытым исходным кодом. Полный код проекта размещен на GitHub .
- Согласно их собственному бенчмаркингу , они намного быстрее, чем Log4J logging framework .
- Нет никакой зависимости от какого-либо другого API и фреймворка.
- Поддержка создания тегов для классификации сообщений журнала. Это очень полезно при фильтрации сообщений журнала из огромного файла журнала.
- Поддержка отложенного ведения журнала позволяет отложить дорогостоящие вычисления только в том случае, если требуется ведение журнала.
Начало работы с Крошечным журналом регистрации
Мы должны включить следующие банки в наш путь к классам проекта. Это последние версии платформы tiny log на момент написания этого руководства.
- Мы должны включить следующие банки в наш путь к классам проекта. Это последние версии платформы tiny log на момент написания этого руководства.
- Мы должны включить следующие банки в наш путь к классам проекта. Это последние версии платформы tiny log на момент написания этого руководства.
Большую часть времени мы используем Maven или Gradle для построения наших проектов и управления зависимостями.
Зависимости Maven для tinylog
org.tinylog tinylog-api 2.0.0-RC1 org.tinylog tinylog-impl 2.0.0-RC1
Зависимости Gradle для tinylog
implementation 'org.tinylog:tinylog-api:2.0.0-RC1' implementation 'org.tinylog:tinylog-impl:2.0.0-RC1'
Использование крошечного регистратора журнала
Как только необходимые jar-файлы будут добавлены в путь к классу проекта, мы сможем использовать его класс регистратора для записи сообщений журнала.
На рисунке ниже показана структура моего проекта Eclipse.
Вот классы, в которых я использую крошечный регистратор журналов для ведения журнала.
Работник.java : Простой класс модели с некоторыми свойствами и их методами получения-установки|/.
package com.journaldev.tinylog; import org.tinylog.Logger; public class Employee { private int id; private String name; public String getName() { Logger.debug("Returning employee name " + this.name); return name; } public void setName(String name) { Logger.info("Setting employee name " + name); this.name = name; } public int getId() { Logger.debug("Returning employee id " + this.id); return id; } public void setId(int id) { Logger.info("Setting employee id " + id); this.id = id; } }
EmployeeService.java : Простой класс обслуживания, предоставляющий метод для создания объекта сотрудника.
package com.journaldev.tinylog; import org.tinylog.Logger; public class EmployeeService { public Employee createEmployee(int i, String n) { Logger.info("Creating Employee with ID = " + i + " and Name = " + n); Employee emp = new Employee(); emp.setId(i); emp.setName(n); return emp; } }
EmployeeMain.java : Основной класс для запуска нашего простого проекта.
package com.journaldev.tinylog; import org.tinylog.Logger; public class EmployeeMain { public static void main(String[] args) { Logger.debug("Program Started"); EmployeeService empService = new EmployeeService(); Employee emp = empService.createEmployee(10, "Pankaj"); System.out.println("Employee ID = " + emp.getId()); System.out.println("Employee Name = " + emp.getName()); Logger.debug("Program Finished"); } }
Когда мы запускаем вышеуказанную программу, она генерирует следующий вывод. Обратите внимание, что на данном этапе мы не создали файл конфигурации крошечного журнала.
Консоль Вывода Примера Ведения Крошечного Журнала
Крошечные Уровни Ведения Журнала
Регистратор поддерживает пять уровней ведения журнала – трассировка, отладка, информация, предупреждение и ошибка. По умолчанию и самый низкий уровень приоритета – “трассировка”. Наивысший уровень приоритета – “ошибка”. Мы можем установить уровень ведения журнала в файле конфигурации. Будут регистрироваться сообщения журнала установленного уровня и более высокого приоритета.
Крошечный Файл Конфигурации Журнала
Крошечный журнал ищет файл tiny log.properties в пути к классу, чтобы настроить параметры ведения журнала. Обычно мы создаем этот файл в каталоге ресурсов. Давайте создадим наш первый крошечный файл конфигурации журнала.
крошечный журнал.свойства :
writer = console writer.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}
Когда мы снова запустим основную программу, результат будет:
12:22:47.073 DEBUG: Program Started 12:22:47.076 INFO: Creating Employee with ID = 10 and Name = Pankaj 12:22:47.076 INFO: Setting employee id 10 12:22:47.077 INFO: Setting employee name Pankaj 12:22:47.077 DEBUG: Returning employee id 10 Employee ID = 10 12:22:47.077 DEBUG: Returning employee name Pankaj Employee Name = Pankaj 12:22:47.077 DEBUG: Program Finished
Обратите внимание, что сообщения журнала соответствуют формату, указанному в файле конфигурации.
Крошечные Теги Журналов
Мы можем установить тег регистратора в коде, используя приведенный ниже код.
Logger.tag("MAIN").debug("Program Started"); Logger.tag("MAIN").debug("Program Finished");
Обновленные сообщения журнала будут содержать следующие строки.
12:26:12.831 MAIN DEBUG: Program Started ... 12:26:12.835 MAIN DEBUG: Program Finished
Мы можем установить тег writer для регистрации сообщений с этим тегом, другие сообщения будут игнорироваться автором.
writer = console writer.tag = SYSTEM
Мы можем игнорировать все теги и регистрировать только сообщения без тегов, установив тег как “-“.
writer = console writer.tag = -
Крошечная конфигурация журнала для записи сообщений в файл журнала
Вот простой пример для регистрации сообщений в tinylog.txt файл.
writer = file writer.file = tinylog.txt writer.level = info writer.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}
Крошечный журнал также поддерживает чтение переменных среды. Например, мы можем указать файл журнала, который будет создан в домашнем каталоге, используя следующий формат.
writer.file = ${HOME}/tinylog.txt
Мы также можем прочитать системные свойства в конфигурации Крошечного журнала, используя формат #{ключ}.
writer.format = #{user.name}: {message}
Конфигурация Записи скользящих файлов
writer = rolling file writer.file = tinylog{count}.txt writer.level = info writer.format = {date: HH:mm:ss.SSS} {tag} {level}: {message}
Расширение TingLog
TinyLog можно расширить. Мы можем реализовать org.tinylog.писатели.Интерфейс Writer
и зарегистрируйте его как сервис. Аналогично, мы можем реализовать org.tinylog.policies.Политика
интерфейс для создания пользовательских политик и их регистрации. Вы можете получить более подробную информацию об этом здесь .