bugfix: add log to telegram msg

This commit is contained in:
dr-wh0 2025-05-11 13:07:50 +00:00
parent ba5b20a8fe
commit 508a6749c9
1 changed files with 12 additions and 7 deletions

View File

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