-
Notifications
You must be signed in to change notification settings - Fork 0
License
ThneS/TicketBackend
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# Available Accounts (0) 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000.000000000000000000 ETH) (1) 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (10000.000000000000000000 ETH) (2) 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC (10000.000000000000000000 ETH) (3) 0x90F79bf6EB2c4f870365E785982E1f101E93b906 (10000.000000000000000000 ETH) (4) 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 (10000.000000000000000000 ETH) (5) 0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (10000.000000000000000000 ETH) (6) 0x976EA74026E726554dB657fA54763abd0C3a0aa9 (10000.000000000000000000 ETH) (7) 0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (10000.000000000000000000 ETH) (8) 0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f (10000.000000000000000000 ETH) (9) 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 (10000.000000000000000000 ETH) # Private Keys (0) 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 (1) 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d (2) 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a (3) 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 (4) 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a (5) 0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba (6) 0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e (7) 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356 (8) 0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97 (9) 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 --- # Testing & Mock Data Run migrations (optional; the app can also run them at startup when wired): 1. Apply SQL files in `migrations/` using psql, or run the binary to auto-run embedded migrations (best effort). Seed mock data (writes 3 demo shows into Postgres): Use the unified dev-tools: cargo run --bin dev-tools --manifest-path backend/Cargo.toml -- seed Update show name on-chain: cargo run --bin dev-tools --manifest-path backend/Cargo.toml -- update-show <show_id> <name> <metadata_uri> Integration tests (ignored by default; require DATABASE_URL): cargo test -p backend -- --ignored Make sure `.env` contains a valid `DATABASE_URL` before running. ## Logging 后端已集成 tracing 作为统一日志系统,默认输出到控制台(pretty 格式)。可通过环境变量配置: - RUST_LOG: 过滤规则(示例:`RUST_LOG=backend=debug,axum=info`)。未设置时默认 `info`。 - LOG_FORMAT: `pretty`(默认)或 `json`,控制控制台日志格式。 - LOG_FILE: 若设置为文件名(例如 `backend.log`),则在控制台输出的同时额外写入该文件。 - LOG_ANSI: 设置为 `0` 关闭彩色输出(默认开启)。 Axum 服务器接入了 tower-http 的 TraceLayer,默认记录基本 HTTP 日志;并提供更细粒度开关: - LOG_HTTP_HEADERS=1 记录请求/响应头部(可能包含敏感信息,生产慎用) - LOG_HTTP_BODY=1 记录 body chunk(仅建议开发/调试环境) 应用内部请使用以下宏替代 `println!/eprintln!`:`tracing::info!`, `warn!`, `error!`, `debug!`, `trace!`。 示例: RUST_LOG=backend=debug,sqlx=warn LOG_FORMAT=json cargo run --manifest-path backend/Cargo.toml SQLx 查询耗时日志: - 开启:`RUST_LOG=sqlx=info`(或 `sqlx=debug` 以获得更详细日志)。 文件滚动: - 通过以下变量控制: - LOG_FILE=backend.log 指定输出文件名(可包含相对/绝对路径,优先使用 LOG_FILE 自带的路径,否则退回 LOG_DIR) - LOG_DIR=./logs 指定目录(可选) - LOG_ROTATION=never|daily|hourly|minutely 控制滚动频率(默认 never) - LOG_STDOUT=1 将日志输出到标准输出(可选) '''也可改为 stdout-only,把文件输出交给外部日志系统(如 Loki/Fluent Bit/ELK)处理''' ## Request ID 生成与传递 服务已集成 request-id 中间件: - 每个入站请求会生成一个 `UUID v4` 的 `request-id` 并写入响应头; - 若客户端已携带 `request-id` 请求头,则沿用该值; - 该 `request-id` 会被注入到 HTTP tracing span 中的 `request_id` 字段,用于关联请求全链路日志; - 默认头名:`x-request-id`,可通过环境变量覆盖: - `REQ_ID_HEADER`(示例:`REQ_ID_HEADER=X-Correlation-ID`)。 示例: 1. 让服务自动生成 request-id curl -i http://127.0.0.1:8080/health 响应头中会包含:`x-request-id: <uuid>`,日志中对应字段 `request_id` 同步出现。 2. 由客户端传入自定义 request-id(并传播回响应) curl -i -H 'x-request-id: my-trace-123' http://127.0.0.1:8080/health 响应头仍为 `x-request-id: my-trace-123`,并写入日志 span。
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published