rsiot_logging/
lib.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(target_arch = "x86_64", target_arch = "aarch64"))]
63mod target_x86_64;
64#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
65pub use target_x86_64::configure_logging;