23:44
Урок 18: Логирование

Курс по программированию на Java

Урок 18: Логирование

В этом уроке мы рассмотрим, как использовать логирование в Java для отслеживания выполнения программы и выявления ошибок.

Основы логирования

Логирование позволяет записывать информацию о выполнении программы. В Java для логирования часто используется библиотека java.util.logging. Пример простого логирования:

import java.util.logging.Logger;

public class LoggingExample {
 private static final Logger logger = Logger.getLogger(LoggingExample.class.getName());
 
 public static void main(String[] args) {
 logger.info("Программа запущена");
 
 try {
 int result = 10 / 0;
 } catch (ArithmeticException e) {
 logger.severe("Ошибка: " + e.getMessage());
 }
 
 logger.info("Программа завершена");
 }
}

Результат выполнения

INFO: Программа запущена
SEVERE: Ошибка: / by zero
INFO: Программа завершена

Настройка логирования

Логирование можно настраивать, используя конфигурационные файлы или программные методы. Пример настройки логирования:

import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class LoggingConfigExample {
 private static final Logger logger = Logger.getLogger(LoggingConfigExample.class.getName());
 
 public static void main(String[] args) {
 ConsoleHandler handler = new ConsoleHandler();
 handler.setLevel(Level.ALL);
 handler.setFormatter(new SimpleFormatter());
 
 logger.addHandler(handler);
 logger.setLevel(Level.ALL);
 
 logger.info("Логирование настроено");
 logger.warning("Это предупреждение");
 logger.severe("Это серьезная ошибка");
 }
}

Результат выполнения

INFO: Логирование настроено
WARNING: Это предупреждение
SEVERE: Это серьезная ошибка

Упражнения

Упражнение 1: Логирование информации о пользователе

Напишите программу, которая принимает имя и возраст пользователя и логирует эти данные на разных уровнях (INFO, WARNING).

Решение:

import java.util.logging.Logger;

public class UserLogging {
 private static final Logger logger = Logger.getLogger(UserLogging.class.getName());

 public static void main(String[] args) {
 String name = "Анна";
 int age = 25;

 logger.info("Имя пользователя: " + name);
 if (age < 18) {
 logger.warning("Возраст пользователя меньше 18: " + age);
 } else {
 logger.info("Возраст пользователя: " + age);
 }
 }
}

Объяснение: Программа логирует имя пользователя на уровне INFO и возраст на уровне WARNING, если он меньше 18. В остальных случаях возраст логируется на уровне INFO.

Упражнение 2: Логирование ошибок при чтении файла

Напишите программу, которая читает данные из файла и логирует любые ошибки, возникающие при чтении файла.

Решение:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Logger;

public class FileReadingLogging {
 private static final Logger logger = Logger.getLogger(FileReadingLogging.class.getName());

 public static void main(String[] args) {
 try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
 String line;
 while ((line = br.readLine()) != null) {
 System.out.println(line);
 }
 } catch (IOException e) {
 logger.severe("Ошибка при чтении файла: " + e.getMessage());
 }
 }
}

Объяснение: Программа пытается прочитать файл example.txt и логирует ошибку на уровне SEVERE, если возникает исключение IOException.

Категория: Java | Просмотров: 112 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: