Add RADICLE_HTTPD_LOG_FORMAT runtime switch

- Select text (default) or json log format at startup, not at
  compile time
- Emit the access log as structured fields (client, method, uri,
  version, status, latency_ms, bytes) in json
- Log status and size as plain text, since tracing-subscriber
  escapes ANSI codes
- Remove the logfmt feature and tracing-logfmt dependency
- Drop the radicle-term dependency
- Split format setup from lib.rs into logger.rs

Co-Authored-By: Daniel Norman <daniel@norman.life>
This commit is contained in:
Yorgos Saslis
2026-09-24 14:55:09 +02:00
committed by Daniel Norman
co-authored by Daniel Norman
parent 45bd0a3787
commit b9ba3b7917
6 changed files with 302 additions and 206 deletions
Generated
+9 -138
View File
@@ -494,7 +494,7 @@ dependencies = [
"find-msvc-tools",
"jobserver",
"libc",
"shlex 2.0.1",
"shlex",
]
[[package]]
@@ -1804,7 +1804,6 @@ dependencies = [
"crossterm",
"dyn-clone",
"fuzzy-matcher",
"tempfile",
"unicode-segmentation",
"unicode-width",
]
@@ -2778,7 +2777,6 @@ dependencies = [
"radicle-job",
"radicle-search",
"radicle-surf",
"radicle-term",
"serde",
"serde_json",
"tempfile",
@@ -2788,7 +2786,6 @@ dependencies = [
"tower",
"tower-http",
"tracing",
"tracing-logfmt",
"tracing-subscriber",
"url",
"uuid",
@@ -2852,17 +2849,6 @@ dependencies = [
"tracing-subscriber",
]
[[package]]
name = "radicle-signals"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "137929529ba88f1f82cce97d29c14bd26a234a747db23fc7f6643796a37cc956"
dependencies = [
"libc",
"signals_receipts",
"windows 0.62.2",
]
[[package]]
name = "radicle-surf"
version = "0.29.0"
@@ -2881,26 +2867,6 @@ dependencies = [
"url",
]
[[package]]
name = "radicle-term"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f7059000b2441b45d30d0584d26c22dfd97907c22a329d281fb427002f9458e"
dependencies = [
"anstyle-query",
"crossterm",
"indicatif",
"inquire",
"libc",
"radicle-signals",
"shlex 1.3.0",
"thiserror 2.0.19",
"unicode-display-width",
"unicode-segmentation",
"winsplit",
"zeroize",
]
[[package]]
name = "rand"
version = "0.8.7"
@@ -3228,18 +3194,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "sem_safe"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be9665e92f9b596cf2b20a8c0f55126cfee3514307740a859f1b25bc929e4947"
dependencies = [
"base64 0.22.1",
"errno",
"getrandom 0.2.17",
"libc",
]
[[package]]
name = "semver"
version = "1.0.28"
@@ -3387,12 +3341,6 @@ dependencies = [
"lazy_static",
]
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "shlex"
version = "2.0.1"
@@ -3430,18 +3378,6 @@ dependencies = [
"libc",
]
[[package]]
name = "signals_receipts"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8400878c2b53f6e3e224fcbdf20d87743a5c6547129f0a6a227f8282b6c6910b"
dependencies = [
"cfg-if",
"errno",
"libc",
"sem_safe",
]
[[package]]
name = "signature"
version = "1.6.4"
@@ -3999,15 +3935,13 @@ dependencies = [
]
[[package]]
name = "tracing-logfmt"
version = "0.3.7"
name = "tracing-serde"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a250055a3518b5efba928a18ffac8d32d42ea607a9affff4532144cd5b2e378e"
checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
dependencies = [
"time",
"tracing",
"serde",
"tracing-core",
"tracing-subscriber",
]
[[package]]
@@ -4020,10 +3954,13 @@ dependencies = [
"nu-ansi-term",
"once_cell",
"regex-automata",
"serde",
"serde_json",
"sharded-slab",
"thread_local",
"tracing",
"tracing-core",
"tracing-serde",
]
[[package]]
@@ -4061,15 +3998,6 @@ version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
[[package]]
name = "unicode-display-width"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a43273b656140aa2bb8e65351fe87c255f0eca706b2538a9bd4a590a3490bf3"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "unicode-ident"
version = "1.0.24"
@@ -4358,27 +4286,6 @@ dependencies = [
"windows-targets",
]
[[package]]
name = "windows"
version = "0.62.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
dependencies = [
"windows-collections",
"windows-core 0.62.2",
"windows-future",
"windows-numerics",
]
[[package]]
name = "windows-collections"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
dependencies = [
"windows-core 0.62.2",
]
[[package]]
name = "windows-core"
version = "0.58.0"
@@ -4405,17 +4312,6 @@ dependencies = [
"windows-strings 0.5.1",
]
[[package]]
name = "windows-future"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
dependencies = [
"windows-core 0.62.2",
"windows-link",
"windows-threading",
]
[[package]]
name = "windows-implement"
version = "0.58.0"
@@ -4466,16 +4362,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-numerics"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
dependencies = [
"windows-core 0.62.2",
"windows-link",
]
[[package]]
name = "windows-result"
version = "0.2.0"
@@ -4547,15 +4433,6 @@ dependencies = [
"windows_x86_64_msvc",
]
[[package]]
name = "windows-threading"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
dependencies = [
"windows-link",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
@@ -4614,15 +4491,9 @@ dependencies = [
"log",
"rand 0.8.7",
"sync-ptr",
"windows 0.58.0",
"windows",
]
[[package]]
name = "winsplit"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ab703352da6a72f35c39a533526393725640575bb211f61987a2748323ad956"
[[package]]
name = "wit-bindgen"
version = "0.57.1"