/
aleksandrazimut
/
TimerCountdownDesktop
Обзор
Документация
Войти
/
aleksandrazimut
/
TimerCountdownDesktop
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/com/timerapp/util/LoggerUtil.java
104 строки
3 KB
Aleksandr Azimut
init commit
17 дек 2025, 21:59
17 дек 2025, 21:59
3c602f1
Код
Авторство
О чём код?
package com.timerapp.util; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; public class LoggerUtil { private static final Logger LOGGER = Logger.getLogger("TimerApp"); private static FileHandler fileHandler; private static boolean initialized = false; public static void initialize() { if (initialized) { return; } try { // C:\Users\...\AppData\Local\Temp\countdown-timer-logs Path logsDir = Paths.get(System.getProperty("java.io.tmpdir"), "countdown-timer-logs"); if (!Files.exists(logsDir)) { Files.createDirectories(logsDir); } // уникальное имя файла String timestamp = LocalDateTime.now() .format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss")); String logFileName = String.format("countdown-timer-%s.log", timestamp); Path logFilePath = logsDir.resolve(logFileName); // FileHandler fileHandler = new FileHandler(logFilePath.toString(), true); fileHandler.setFormatter(new SimpleFormatter()); fileHandler.setLevel(Level.ALL); // handler к logger LOGGER.addHandler(fileHandler); LOGGER.setLevel(Level.ALL); // Отключает вывод в консоль родительского logger (опционально) LOGGER.setUseParentHandlers(true); initialized = true; info("=== Timer Application Started ==="); info("Log file: " + logFilePath.toAbsolutePath()); } catch (IOException e) { System.err.println("Failed to initialize file logging: " + e.getMessage()); e.printStackTrace(); } } /** * Логирует информационное сообщение */ public static void info(String message) { LOGGER.info(message); } /** * Логирует предупреждение */ public static void warning(String message) { LOGGER.warning(message); } /** * Логирует ошибку */ public static void error(String message) { LOGGER.severe(message); } /** * Логирует ошибку с exception */ public static void error(String message, Throwable throwable) { LOGGER.log(Level.SEVERE, message, throwable); } /** * Закрывает file handler при завершении приложения */ public static void shutdown() { if (fileHandler != null) { info("=== Timer Application Shutdown ==="); fileHandler.close(); } } /** * Получить Logger для прямого использования */ public static Logger getLogger() { return LOGGER; } }