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