最后活跃于 1755689769

Patch to add JSON logging to nostr-rs-relay so logs can be parsed by loki

nostr-rs-relay.patch 原始文件
1bf6abd3 (HEAD -> master, homelab/master) feat: json logging
2diff --git a/Cargo.lock b/Cargo.lock
3index c8354d2..3ca8556 100644
4--- a/Cargo.lock
5+++ b/Cargo.lock
6@@ -3671,6 +3671,16 @@ dependencies = [
7 "tracing-core",
8 ]
9
10+[[package]]
11+name = "tracing-serde"
12+version = "0.2.0"
13+source = "registry+https://github.com/rust-lang/crates.io-index"
14+checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
15+dependencies = [
16+ "serde",
17+ "tracing-core",
18+]
19+
20 [[package]]
21 name = "tracing-subscriber"
22 version = "0.3.19"
23@@ -3681,12 +3691,15 @@ dependencies = [
24 "nu-ansi-term",
25 "once_cell",
26 "regex",
27+ "serde",
28+ "serde_json",
29 "sharded-slab",
30 "smallvec",
31 "thread_local",
32 "tracing",
33 "tracing-core",
34 "tracing-log",
35+ "tracing-serde",
36 ]
37
38 [[package]]
39diff --git a/Cargo.toml b/Cargo.toml
40index 7f0ce2e..4a72c91 100644
41--- a/Cargo.toml
42+++ b/Cargo.toml
43@@ -15,7 +15,7 @@ categories = ["network-programming", "web-programming"]
44 clap = { version = "4.0.32", features = ["env", "default", "derive"]}
45 tracing = "0.1.37"
46 tracing-appender = "0.2.2"
47-tracing-subscriber = "0.3.16"
48+tracing-subscriber = { version = "0.3.16", features = ["fmt", "json"] }
49 tokio = { version = "1", features = ["full", "tracing", "signal"] }
50 prost = "0.11"
51 tonic = "0.8.3"
52diff --git a/Dockerfile b/Dockerfile
53index 0b0083e..27a36eb 100644
54--- a/Dockerfile
55+++ b/Dockerfile
56@@ -8,7 +8,7 @@ WORKDIR ./nostr-rs-relay
57 COPY ./Cargo.toml ./Cargo.toml
58 COPY ./Cargo.lock ./Cargo.lock
59 # build dependencies only (caching)
60-RUN cargo auditable build --release --locked
61+RUN cargo auditable build --release
62 # get rid of starter project code
63 RUN rm src/*.rs
64
65@@ -19,7 +19,7 @@ COPY ./build.rs ./build.rs
66
67 # build auditable release using locked deps
68 RUN rm ./target/release/deps/nostr*relay*
69-RUN cargo auditable build --release --locked
70+RUN cargo auditable build --release
71
72 FROM docker.io/library/debian:bookworm-slim
73
74@@ -48,5 +48,6 @@ WORKDIR ${APP}
75
76 ENV RUST_LOG=info,nostr_rs_relay=info
77 ENV APP_DATA=${APP_DATA}
78+COPY ./my_config.toml /usr/src/app/config.toml
79
80 CMD ./nostr-rs-relay --db ${APP_DATA}
81diff --git a/README.md b/README.md
82index d56b665..92bc3d4 100644
83--- a/README.md
84+++ b/README.md
85@@ -1,3 +1,8 @@
86+# nostr-rs-relay Fork with JSON logging
87+
88+Made this because I wanted logs in Loki
89+
90+
91 # [nostr-rs-relay](https://git.sr.ht/~gheartsfield/nostr-rs-relay)
92
93 This is a [nostr](https://github.com/nostr-protocol/nostr) relay,
94diff --git a/src/main.rs b/src/main.rs
95index feadf2c..f59427d 100644
96--- a/src/main.rs
97+++ b/src/main.rs
98@@ -81,8 +81,10 @@ fn main() {
99 .try_init()
100 .unwrap();
101 } else {
102- // write to stdout
103- tracing_subscriber::fmt::try_init().unwrap();
104+ tracing_subscriber::fmt()
105+ .json()
106+ .flatten_event(true) // optional: flattens fields into top-level JSON
107+ .init()
108 }
109 }
110 info!("Starting up from main");
111