Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

55 changes: 55 additions & 0 deletions crates/trusted-server-adapter-fastly/src/logging.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
use chrono::{Local, SecondsFormat};
use log_fastly::Logger;

pub(crate) fn target_label(target: &str) -> &str {
Comment thread
prk-Jr marked this conversation as resolved.
Outdated
Comment thread
prk-Jr marked this conversation as resolved.
Outdated
target.rsplit_once("::").map_or(target, |(_, last)| last)
Comment thread
prk-Jr marked this conversation as resolved.
Outdated
}

pub(crate) fn init_logger() {
let logger = Logger::builder()
.default_endpoint("tslog")
.echo_stdout(true)
.max_level(log::LevelFilter::Info)
Comment thread
prk-Jr marked this conversation as resolved.
Comment thread
prk-Jr marked this conversation as resolved.
Comment thread
prk-Jr marked this conversation as resolved.
.build()
.expect("should build Logger");

fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"{} {} [{}] {}",
Local::now().to_rfc3339_opts(SecondsFormat::Millis, true),
Comment thread
prk-Jr marked this conversation as resolved.
Outdated
record.level(),
target_label(record.target()),
message
));
})
.chain(Box::new(logger) as Box<dyn log::Log>)
.apply()
.expect("should initialize logger");
}
Comment thread
prk-Jr marked this conversation as resolved.
Comment thread
prk-Jr marked this conversation as resolved.

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn target_label_extracts_correct_segment() {
assert_eq!(
Comment thread
prk-Jr marked this conversation as resolved.
target_label("trusted_server_adapter_fastly::proxy"),
"proxy",
"should handle standard single-separator case"
);
assert_eq!(
target_label("foo::bar::baz"),
"baz",
"should handle multiple separators"
);
assert_eq!(
target_label("no_separators_here"),
"no_separators_here",
"should handle inputs without ::"
);
assert_eq!(target_label(""), "", "should handle empty strings");
assert_eq!(target_label("trailing::"), "", "should handle trailing ::");
}
}
31 changes: 2 additions & 29 deletions crates/trusted-server-adapter-fastly/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use error_stack::Report;
use fastly::http::Method;
use fastly::{Error, Request, Response};
use log_fastly::Logger;

use trusted_server_core::auction::endpoints::handle_auction;
use trusted_server_core::auction::{build_orchestrator, AuctionOrchestrator};
Expand All @@ -28,6 +27,7 @@ use trusted_server_core::settings::Settings;
use trusted_server_core::settings_data::get_settings;

mod error;
mod logging;
mod management_api;
mod platform;

Expand All @@ -36,7 +36,7 @@ use crate::platform::{build_runtime_services, open_kv_store, UnavailableKvStore}

#[fastly::main]
fn main(req: Request) -> Result<Response, Error> {
init_logger();
logging::init_logger();

// Keep the health probe independent from settings loading and routing so
// readiness checks still get a cheap liveness response during startup.
Expand Down Expand Up @@ -241,30 +241,3 @@ fn finalize_response(settings: &Settings, geo_info: Option<&GeoInfo>, response:
response.set_header(key, value);
}
}

fn init_logger() {
let logger = Logger::builder()
.default_endpoint("tslog")
.echo_stdout(true)
.max_level(log::LevelFilter::Info)
.build()
.expect("should build Logger");

fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"{} {} [{}] {}",
chrono::Local::now().to_rfc3339_opts(chrono::SecondsFormat::Millis, true),
record.level(),
record
.target()
.split("::")
.last()
.unwrap_or(record.target()),
message
))
})
.chain(Box::new(logger) as Box<dyn log::Log>)
.apply()
.expect("should initialize logger");
}
1 change: 0 additions & 1 deletion crates/trusted-server-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ iab_gpp = { workspace = true }
jose-jwk = { workspace = true }
log = { workspace = true }
rand = { workspace = true }
log-fastly = { workspace = true }
lol_html = { workspace = true }
matchit = { workspace = true }
pin-project-lite = { workspace = true }
Expand Down
Loading
Loading