Skip to content

Commit

Permalink
Do not apply default logs in block-reverter
Browse files Browse the repository at this point in the history
  • Loading branch information
popzxc committed Jun 21, 2024
1 parent eee25cb commit 37d707a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
4 changes: 3 additions & 1 deletion core/bin/block_reverter/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@ async fn main() -> anyhow::Result<()> {
.parse()
.context("Invalid log format")?;

let mut builder = vlog::ObservabilityBuilder::new().with_log_format(log_format);
let mut builder = vlog::ObservabilityBuilder::new()
.with_log_format(log_format)
.disable_default_logs(); // It's a CLI application, so we only need to show logs that were actually requested.
if let Some(sentry_url) = observability_config.sentry_url {
builder = builder
.with_sentry_url(&sentry_url)
Expand Down
19 changes: 16 additions & 3 deletions core/lib/vlog/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ pub struct OpenTelemetryOptions {
/// Currently capable of configuring logging output and sentry integration.
#[derive(Debug, Default)]
pub struct ObservabilityBuilder {
disable_default_logs: bool,
log_format: LogFormat,
log_directives: Option<String>,
sentry_url: Option<Dsn>,
Expand Down Expand Up @@ -176,6 +177,14 @@ impl ObservabilityBuilder {
self
}

/// Disables logs enabled by default.
/// May be used, for example, in interactive CLI applications, where the user may want to fully control
/// the verbosity.
pub fn disable_default_logs(mut self) -> Self {
self.disable_default_logs = true;
self
}

/// Enables Sentry integration.
/// Returns an error if the provided Sentry URL is invalid.
pub fn with_sentry_url(
Expand Down Expand Up @@ -256,8 +265,8 @@ impl ObservabilityBuilder {

/// Builds a filter for the logs.
///
/// Uses `zksync=info` as a default which is then merged with user-defined directives.
/// Provided directives can extend/override the default value.
/// Unless `disable_default_logs` was set, uses `zksync=info` as a default which is then merged
/// with user-defined directives. Provided directives can extend/override the default value.
///
/// The provided default convers all the crates with a name starting with `zksync` (per `tracing`
/// [documentation][1]), which is a good enough default for any project.
Expand All @@ -267,7 +276,11 @@ impl ObservabilityBuilder {
///
/// [1]: https://docs.rs/tracing-subscriber/0.3.18/tracing_subscriber/filter/targets/struct.Targets.html#filtering-with-targets
fn build_filter(&self) -> EnvFilter {
let mut directives = "zksync=info,".to_string();
let mut directives = if self.disable_default_logs {
"".to_string()
} else {
"zksync=info,".to_string()
};
if let Some(log_directives) = &self.log_directives {
directives.push_str(log_directives);
} else if let Ok(env_directives) = std::env::var(EnvFilter::DEFAULT_ENV) {
Expand Down

0 comments on commit 37d707a

Please sign in to comment.