moduforge_state/
lib.rs

1pub mod error;
2pub mod logging;
3pub mod plugin;
4pub mod state;
5pub mod transaction;
6pub use state::{State, StateConfig, Configuration};
7pub use transaction::Transaction;
8pub use tracing::{info, debug, warn, error};
9/// 初始化日志系统
10///
11/// # 参数
12/// * `level` - 日志级别,可选值:
13///   - trace: 最详细的跟踪信息
14///   - debug: 调试信息
15///   - info: 一般信息
16///   - warn: 警告信息
17///   - error: 错误信息
18/// * `file_path` - 日志文件路径,如果为 None 则只输出到控制台
19///
20/// # 示例
21/// ```
22/// use moduforge_core::init_logging;
23///
24/// // 只输出到控制台
25/// init_logging("debug", None)?;
26///
27/// // 同时输出到文件和控制台
28/// init_logging("info", Some("logs/moduforge.log"))?;
29/// ```
30pub fn init_logging(
31    level: &str,
32    file_path: Option<&str>,
33) -> anyhow::Result<()> {
34    use std::path::PathBuf;
35
36    let level = match level.to_lowercase().as_str() {
37        "trace" => tracing::Level::TRACE,
38        "debug" => tracing::Level::DEBUG,
39        "info" => tracing::Level::INFO,
40        "warn" => tracing::Level::WARN,
41        "error" => tracing::Level::ERROR,
42        _ => tracing::Level::INFO,
43    };
44
45    let file_path = file_path.map(PathBuf::from);
46    logging::init_logging(Some(level), file_path)
47}