diff --git a/src/DosAtk.cpp b/src/DosAtk.cpp index ff1e6a0..f0b8040 100644 --- a/src/DosAtk.cpp +++ b/src/DosAtk.cpp @@ -507,6 +507,7 @@ int my_log() std::string rotated_log_name; // Новое имя файла при ротации int stat_result; // Результат проверки stat std::chrono::milliseconds ms; // Миллисекунды + std::ostringstream oss; const size_t max_log_size = 10485760; // Лимит размера лога (10MB) @@ -524,10 +525,16 @@ int my_log() now.time_since_epoch()) % 1000; // === Основная логика === + + oss << " | Stopping DosAtk [" << std::put_time(&now_tm, "%Y-%m-%d %H:%M:%S") + << "." << std::setfill('0') << std::setw(3) << ms.count() << "]" + << std::endl; + log_msg += oss.str(); + // Если путь к лог-файлу не указан if(log_file.empty()) { printf("end my_log\n"); // debug - msg = "ОШИБКА ЗАПИСИ В ЛОГ: Путь к лог-файлу не найден!"; + msg = "ОШИБКА ЗАПИСИ В ЛОГ: Путь к лог-файлу не найден!\n\nЛОГ:\n" + log_msg; return 1; } @@ -537,14 +544,12 @@ int my_log() // Проверка успешности открытия файла if(!log_stream.is_open()) { printf("end my_log\n"); // debug - msg = "ОШИБКА ЗАПИСИ В ЛОГ: Не удалось открыть лог-файл!"; + msg = "ОШИБКА ЗАПИСИ В ЛОГ: Не удалось открыть лог-файл!\n\nЛОГ:\n" + log_msg; return 1; } // Запись сообщения в лог - log_stream << log_msg << " | Stopping DosAtk [" << std::put_time(&now_tm, "%Y-%m-%d %H:%M:%S") - << "." << std::setfill('0') << std::setw(3) << ms.count() << "]" - << std::endl; + log_stream << log_msg; // Проверка размер файла и выполняем ротацию if(stat_result == 0 && file_stat.st_size > max_log_size) { @@ -553,7 +558,7 @@ int my_log() // Переименование файла if(rename(log_file.c_str(), rotated_log_name.c_str()) != 0) { printf("end my_log\n"); // debug - msg = "ОШИБКА ЗАПИСИ В ЛОГ: Ошибка при ротации лога - не удалось преименовать файл!"; + msg = "ОШИБКА ЗАПИСИ В ЛОГ: Ошибка при ротации лога - не удалось преименовать файл!\n\nЛОГ:\n" + log_msg; return 1; } @@ -561,7 +566,7 @@ int my_log() log_stream.open(log_file, std::ios::app); if(!log_stream.is_open()) { printf("end my_log\n"); // debug - msg = "ОШИБКА ЗАПИСИ В ЛОГ: Ошибка при ротации лога - не удалось открыть новый файл!"; + msg = "ОШИБКА ЗАПИСИ В ЛОГ: Ошибка при ротации лога - не удалось открыть новый файл!\n\nЛОГ:\n" + log_msg; return 1; } }