Skip to content

Commit 4090455

Browse files
committed
Set up JSON logging properly for fields
When using the JSON logging backend, tracing expects the fields to have been formatted as a JSON string. However, the layer wasn't set up properly for that, resulting in a variety of "field_error"s in the logs (and panics on debug builds). As it turns out, we were setting it up in an overcomplicated way regardless, so use the simpler helper functions in tracing that set all of this up for us. Signed-off-by: Ryan Gonzalez <[email protected]>
1 parent 542e747 commit 4090455

File tree

1 file changed

+17
-31
lines changed

1 file changed

+17
-31
lines changed

src/main.rs

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,8 @@ use clap::Parser;
44
use color_eyre::eyre::Result;
55
use gitlab_runner::Runner;
66
use strum::{Display, EnumString};
7-
use tracing::{error, info, Subscriber};
8-
use tracing_subscriber::{
9-
filter::targets::Targets,
10-
fmt::{format::DefaultFields, FormatEvent},
11-
prelude::*,
12-
registry::LookupSpan,
13-
util::SubscriberInitExt,
14-
Layer,
15-
};
7+
use tracing::{error, info};
8+
use tracing_subscriber::{filter::targets::Targets, prelude::*, util::SubscriberInitExt, Layer};
169
use url::Url;
1710

1811
use crate::handler::{HandlerOptions, ObsJobHandler};
@@ -90,16 +83,6 @@ struct Args {
9083
max_jobs: usize,
9184
}
9285

93-
fn formatter_layer<E, S>(format: E, targets: Targets) -> impl Layer<S>
94-
where
95-
S: Subscriber + for<'a> LookupSpan<'a>,
96-
E: FormatEvent<S, DefaultFields> + 'static,
97-
{
98-
tracing_subscriber::fmt::layer()
99-
.event_format(format)
100-
.with_filter(targets)
101-
}
102-
10386
#[tokio::main]
10487
async fn main() {
10588
let args = Args::parse();
@@ -113,22 +96,25 @@ async fn main() {
11396

11497
match args.log_format {
11598
LogFormat::Compact => registry
116-
.with(formatter_layer(
117-
tracing_subscriber::fmt::format().compact(),
118-
args.log.targets,
119-
))
99+
.with(
100+
tracing_subscriber::fmt::layer()
101+
.compact()
102+
.with_filter(args.log.targets),
103+
)
120104
.init(),
121105
LogFormat::Json => registry
122-
.with(formatter_layer(
123-
tracing_subscriber::fmt::format().json(),
124-
args.log.targets,
125-
))
106+
.with(
107+
tracing_subscriber::fmt::layer()
108+
.json()
109+
.with_filter(args.log.targets),
110+
)
126111
.init(),
127112
LogFormat::Pretty => registry
128-
.with(formatter_layer(
129-
tracing_subscriber::fmt::format().pretty(),
130-
args.log.targets,
131-
))
113+
.with(
114+
tracing_subscriber::fmt::layer()
115+
.pretty()
116+
.with_filter(args.log.targets),
117+
)
132118
.init(),
133119
}
134120

0 commit comments

Comments
 (0)