rsiot/logging/
mod.rs

1#![allow(clippy::needless_doctest_main)]
2//! Настройки логгирования для разных платформ.
3//!
4//! Для настройки логгирования нужно задать переменную `RUST_LOG`.
5//!
6//! ## Способы задания RUST_LOG
7//!
8//! ### Запуск в контейнере
9//!
10//! В файле `docker-compose.yaml` для сервиса указать:
11//!
12//! ```yaml
13//! services:
14//!   rust_service:
15//!     environment:
16//!       - RUST_LOG=info
17//! ```
18//!
19//! Значение переменной можно задавать для каждого сервиса оданиково.
20//!
21//! ### Запуск в контейнере, сохранение в файле `.env`
22//!
23//! В файле `docker-compose.yaml` для сервиса указать:
24//!
25//! ```yaml
26//! services:
27//!   rust_service:
28//!     env_file: .env
29//! ```
30//!
31//! Значение переменной будет одинаково для всех сервисов
32//!
33//! ### Задание в compile-time
34//!
35//! Платформы WASM, ESP не могут считывать переменные окружения, поэтому значение необходимо
36//! прописывать на этапе компиляции.
37//!
38//! Чтобы значение переменной считывалось из файла:
39//!
40//! - создать файл .env в корне проекта
41//! - прописать в файле переменную в виде `RUST_LOG = info`
42//! - если изменить только переменную, без изменения кода, то перекомпиляции не будет. Поэтому можно
43//!   создать файл `build.rs` в корне проекта с содержимым:
44//!
45//! ```rust
46//! pub fn main() {
47//!     println!("cargo:rerun-if-changed=.env");
48//! }
49//! ```
50//!
51//! TODO - Примеры задания переменной `RUST_LOG`
52//!
53
54mod error;
55pub use error::Error;
56
57#[cfg(target_arch = "wasm32")]
58mod target_wasm32;
59#[cfg(target_arch = "wasm32")]
60pub use target_wasm32::configure_logging;
61
62#[cfg(any(
63    aarch64_unknown_linux_gnu,
64    armv7_unknown_linux_gnueabihf,
65    x8664_unknown_linux_gnu
66))]
67mod target_x86_64;
68#[cfg(any(
69    aarch64_unknown_linux_gnu,
70    armv7_unknown_linux_gnueabihf,
71    x8664_unknown_linux_gnu
72))]
73pub use target_x86_64::configure_logging;
74
75#[cfg(riscv32imc_esp_espidf)]
76mod target_esp;
77#[cfg(riscv32imc_esp_espidf)]
78pub use target_esp::configure_logging;
79
80type Result<T> = std::result::Result<T, Error>;