# <<project_name>>

A Rust project generated with [scaffold-gen](https://github.com/sunerpy/scaffold-gen).

---

## 必要说明 (What is this)

这是一个配置驱动的 Rust 项目：日志级别、文件路径等参数写在 `config/` 目录下的 TOML 文件里，
通过 `APP_ENV` 环境变量选择环境，也可用 `APP_` 前缀的环境变量覆盖任意配置项。

```
<<project_name>>/
├── src/
│   ├── main.rs              # 应用入口
│   ├── config.rs            # 配置管理
│   └── logger.rs            # 日志配置
├── config/                  # ★ 配置文件写在这里
│   ├── config.example.toml  # 配置范例
│   ├── config.dev.toml      # 开发环境（默认）
│   ├── config.test.toml     # 测试环境
│   └── config.prod.toml     # 生产环境
├── logs/                    # 运行时日志文件（自动创建）
├── Cargo.toml               # 项目依赖
└── README.md
```

---

## 必要工具 (Requirements)

- **Rust 1.88+**（安装：https://rustup.rs）
- **Cargo**（随 Rust 一起安装）

---

## 使用方法 (Usage)

```bash
# 使用默认配置（dev）运行
cargo run

# 指定环境
APP_ENV=prod cargo run

# 自定义日志级别（优先级最高）
RUST_LOG=debug cargo run
```

### 改配置（Change config）

编辑 `config/config.dev.toml`，**不要硬编码**：

```toml
[logger]
level = "debug"              # trace / debug / info / warn / error
directory = "logs"
file_name = "app.log"
enable_console = true
enable_file = true
```

也可用环境变量覆盖（`APP_` 前缀）：

```bash
APP_LOGGER_LEVEL=trace cargo run
APP_LOGGER_ENABLE_CONSOLE=false cargo run
```

---

## 开发流程 (Development)

```bash
# 构建
cargo build

# 运行测试
cargo test

# 代码格式化
cargo fmt

# Lint 检查
cargo clippy

# 更新依赖
cargo update
```

### 日志输出

- **控制台**：`pretty` 格式（彩色，适合开发）
- **文件**：`json` 格式，每日轮转，路径 `logs/app.log.YYYY-MM-DD`

可用级别：`trace` / `debug` / `info` / `warn` / `error`

---

## 推荐工具：CodeGraph (Recommended)

当项目变大、或你用 AI 编程助手时，推荐集成
**[codegraph-rust](https://github.com/sunerpy/codegraph-rust)** 作为代码分析工具：

- 基于 **tree-sitter + SQLite/FTS5** 的确定性代码知识图谱，**不含任何 AI/LLM**，输出字节级稳定。
- 提供符号 / 调用 / 依赖关系图，支持 **CLI 与 MCP server** 两种用法，可直接喂给 AI 编程 Agent。
- **单一二进制、易用、极高性能**：显著提升开发效率，同时大幅降低 token 消耗。

```bash
codegraph sync                 # 建立/更新索引
codegraph explore "your code"  # 探索符号与调用关系
```

---

## License

<<license>>
