/
ProjectEroxa
/
NetworkChat
Обзор
Документация
Войти
/
ProjectEroxa
/
NetworkChat
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/chat/common/Logger.java
65 строк
3 KB
Evgeniy Eroshkin
first_commit
07 окт 2025, 16:51
07 окт 2025, 16:51
57192a3
Код
Авторство
О чём код?
package chat.common; import java.io.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * Класс для логирования сообщений в файл * Обеспечивает запись логов с временными метками */ public class Logger { private String logFile; // Имя файла для записи логов // Форматтер для преобразования времени в строку private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); /** * Конструктор класса Logger * * @param logFile имя файла для записи логов */ public Logger(String logFile) { this.logFile = logFile; } /** * Записывает произвольное сообщение в лог * * @param message сообщение для записи */ public void log(String message) { // Формируем строку с временной меткой String timestamp = LocalDateTime.now().format(formatter); String logMessage = String.format("[%s] %s", timestamp, message); // Записываем в файл (режим append=true для дополнения файла) try (PrintWriter writer = new PrintWriter(new FileWriter(logFile, true))) { writer.println(logMessage); writer.flush(); // Принудительно записываем буфер } catch (IOException e) { System.err.println("Ошибка записи в лог: " + e.getMessage()); } } /** * Записывает сообщение чата в лог с указанием пользователя и направления * * @param username имя пользователя * @param message текст сообщения * @param direction направление ("SENT" - отправлено, "RECEIVED" - получено) */ public void logMessage(String username, String message, String direction) { String timestamp = LocalDateTime.now().format(formatter); // Форматируем строку лога: [время] направление [пользователь]: сообщение String logMessage = String.format("[%s] %s [%s]: %s", timestamp, direction, username, message); try (PrintWriter writer = new PrintWriter(new FileWriter(logFile, true))) { writer.println(logMessage); writer.flush(); } catch (IOException e) { System.err.println("Ошибка записи в лог: " + e.getMessage()); } } }