最終更新 1755689769

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

travisshears's Avatar travisshears revised this gist 1755689769. Go to revision

1 file changed, 110 insertions

nostr-rs-relay.patch(file created)

@@ -0,0 +1,110 @@
1 + bf6abd3 (HEAD -> master, homelab/master) feat: json logging
2 + diff --git a/Cargo.lock b/Cargo.lock
3 + index 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]]
39 + diff --git a/Cargo.toml b/Cargo.toml
40 + index 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"
52 + diff --git a/Dockerfile b/Dockerfile
53 + index 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}
81 + diff --git a/README.md b/README.md
82 + index 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,
94 + diff --git a/src/main.rs b/src/main.rs
95 + index 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");
Newer Older