moduforge_core/
lib.rs

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