Рубрики
Без рубрики

TinyLog – Легкий учебник по структуре ведения журнала Java

Tiny Log-это простая и легкая платформа ведения журнала для Java. Мы можем использовать tiny log с приложениями Java, Kotlin, Scala и Android. Преимущества tinylogic

Автор оригинала: Pankaj Kumar.

Tiny Log – это простая и легкая платформа ведения журнала для Java. Мы можем использовать tiny log с приложениями Java, Kotlin, Scala и Android.

Преимущества платформы ведения журнала Tiny Log

  1. Позволяет избежать шаблонного кода инициализации регистратора. Класс регистратора в tinylog является статическим и используется непосредственно для регистрации сообщений.
  2. Поддержка других популярных языков JVM, таких как Kotlin и Scala.
  3. Поддержка приложений для Android тоже с помощью logcat.
  4. Крошечные бревенчатые банки легкие и небольшого размера. Jar API версии tiny log 2.x составляет 48 КБ, а jar реализации-только 72 кб.
  5. Выходные данные могут быть отправлены в консоль, файл, базу данных с помощью JDBC и источника данных.
  6. Файл конфигурации очень прост. Для простого ведения журнала на основе консоли нам не нужен какой-либо файл конфигурации.
  7. Это бесплатно и с открытым исходным кодом. Полный код проекта размещен на GitHub .
  8. Согласно их собственному бенчмаркингу , они намного быстрее, чем Log4J logging framework .
  9. Нет никакой зависимости от какого-либо другого API и фреймворка.
  10. Поддержка создания тегов для классификации сообщений журнала. Это очень полезно при фильтрации сообщений журнала из огромного файла журнала.
  11. Поддержка отложенного ведения журнала позволяет отложить дорогостоящие вычисления только в том случае, если требуется ведение журнала.

Начало работы с Крошечным журналом регистрации

Мы должны включить следующие банки в наш путь к классам проекта. Это последние версии платформы 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.Политика интерфейс для создания пользовательских политик и их регистрации. Вы можете получить более подробную информацию об этом здесь .