death_god_logging_tool

Crates.iodeath_god_logging_tool
lib.rsdeath_god_logging_tool
version5.1.3
created_at2024-03-28 00:32:23.757697+00
updated_at2026-01-18 20:31:12.946722+00
descriptionMy awesome lovelly logging. With colors and code links. (Настройка логирования с навигацией по коду)
homepage
repository
max_upload_size
id1188542
size118,472
Evgene (Evgene-Kopylov)

documentation

README

death_god_logging_tool

Настройка логирования с навигацией по коду и записью всех выводов в файлы.

📋 Сводка по версии 5.0.0

  • Версия: 5.0.0
  • Поддержка: ✅ Linux (Unix-системы)
  • Тестирование: ✅ Полностью протестировано
  • Windows: ⚠️ В файл сохраняются только логи (log::*!)
Функция Windows Linux
log::*!
println!
eprintln!
panic!

🚀 Возможности

  • Цветные логи в консоли с красивым форматированием
  • Кликабельные ссылки на код в VsCode и Intellij
  • Автоматическая ротация файлов - хранится 5 файлов логов
  • Запись всех выводов - логи через log::*!, println!, eprintln!, паники
  • Кастомное именование файлов - <package_name>_rCURRENT.log и пронумерованные версии

📦 Установка

# Cargo.toml

[dependencies]
death_god_logging_tool = "5.0.0"
log = "0.4"

🛠️ Использование

use death_god_logging_tool::conflog;

fn main() {
    // Инициализация логгера
    conflog::init("trace".to_string(), Some("logs".to_string())).ok();
    
    // Логи разных уровней
    log::trace!("Трассировочное сообщение");
    log::debug!("Отладочное сообщение");
    log::info!("Информационное сообщение");
    log::warn!("Предупреждение");
    log::error!("Ошибка");
    
    // Обычные выводы тоже попадают в лог-файл
    println!("Этот вывод тоже запишется в файл");
    eprintln!("И этот тоже!");
    
    // Даже паники записываются в лог-файл
    panic!("Паника тоже логируется!");
}

⚙️ Настройка

Уровень логирования

LOG_LEVEL=warn,<your_app>=trace

Путь к логам

LOG_PATH=logs/

📁 Структура файлов логов

Система создает файлы с ротацией:

  • death_god_logging_tool_rCURRENT.log - текущий файл логов
  • death_god_logging_tool_r00000.log - предыдущий запуск
  • death_god_logging_tool_r00001.log - запуск до предыдущего
  • и т.д. (всего хранится 5 файлов)

🎯 Пример вывода

INFO   LOG_LEVEL=trace                     --> src/conflog.rs:127    2025-10-09T17:01:46

2
TRACE  ttt - записть в лог-файл            --> src/main.rs:13    2025-10-09T17:01:46

3
DEBUG  ddd - записть в лог-файл            --> src/main.rs:16    2025-10-09T17:01:46

INFO   i - записть в лог-файл              --> src/main.rs:17    2025-10-09T17:01:46

WARN   w - записть в лог-файл              --> src/main.rs:18    2025-10-09T17:01:46

ERROR  eee - записть в лог-файл            --> src/main.rs:19    2025-10-09T17:01:46

print line ...

thread 'main' panicked at src/main.rs:21:5:
Паника!!!
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

🧪 Тестирование

Для проверки работы логирования:

# Запуск тестового скрипта
cargo build --release; python test_logging.py

Скрипт проверит:

  • ✅ Создание файлов логов
  • ✅ Запись логов через log::*! макросы
  • ✅ Запись выводов через println! и eprintln!
  • ✅ Запись информации о паниках
  • ✅ Корректную ротацию файлов

🔧 Зависимости

  • flexi_logger - для базового логирования
  • colored - для цветного вывода
  • chrono - для временных меток
  • libc - для перенаправления stdout/stderr (Unix)

📄 Лицензия

GPL-3.0-only

Commit count: 0

cargo fmt