Логирование и отладка в Rust
Логирование и отладка
20
Хорошее логирование и отладка являются важными составляющими любого крупного приложения. Они помогают разработчикам быстро находить и исправлять ошибки в коде, улучшать производительность и общую работу приложения.
В Rust используется макрос-библиотека log
, которая предоставляет унифицированный интерфейс для логирования различных уровней. В ней предопределены следующие уровни логирования: trace
, debug
, info
, warn
, error
.
Для использования log
сначала необходимо настроить логирование в своем проекте, включив соответствующий рендерер логов. Например, можно использовать рендерер env_logger
.
Добавьте в Cargo.toml следующую зависимость:
[dependencies] env_logger = "0.8"
Далее, в файле с вашим кодом, в коде main()
можно настроить логирование и включить его:
#[macro_use] extern crate log; use env_logger::Builder; fn main() { Builder::new().parse("debug").init().unwrap(); debug!("This is a debug message"); info!("This is an info message"); warn!("This is a warning message"); error!("This is an error message"); }
Теперь при запуске проекта вы увидите лог сообщения:
2021-08-22T14:16:44.802631Z DEBUG my_project: This is a debug message 2021-08-22T14:16:44.802771Z INFO my_project: This is an info message 2021-08-22T14:16:44.802794Z WARN my_project: This is a warning message 2021-08-22T14:16:44.802814Z ERROR my_project: This is an error message
Кроме логирования, в Rust также можно использовать отладчик. Для этого можно использовать встроенный в Rust отладчик gdb
. Чтобы использовать gdb
с вашим проектом, вам сначала нужно установить его на свой компьютер.
После этого задайте следующие параметры для rustc
для компиляции вашего проекта:
#![allow(dead_code)] #![allow(unused_variables)] fn foo() { println!("Hello, world!"); let x = 5; let y = x + 1; } fn main() { let x = 42; let y = x * 2; foo(); let msg = "Hello, universe!"; println!("{}", msg); }
Запустите скомпилированный бинарный файл с помощью команды gdb <binary>
. Вы попадете в интерактивный режим отладчика gdb
.
Например, можно установить точку останова в функции foo
и вывести значение переменных:
(gdb) break foo (gdb) run (gdb) print x (gdb) print y
Как только Вы установили точку останова, выполните команду run
чтобы запустить программу. Отладчик остановится на установленной точке останова. Вы можете продолжить выполнение программы, нажав клавишу c
на своей клавиатуре.
Кроме gdb
в Rust также есть другие удобные отладчики, например lldb
, rust-gdb
, rr
. Они также поддерживают большинство технических возможностей, которые вы используете при отладке в других языках программирования.
Надеюсь, это было полезно и поможет Вам улучшить свой опыт разработки на Rust.
March 27, 2023