pub(super) fn build_filter(&self) -> EnvFilter {
        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) {
            directives.push_str(&env_directives);
        };
        EnvFilter::new(directives)
    }
Builds a filter for the logs.

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.

If `log_directives` are provided via `with_log_directives`, they will be used.
Otherwise, the value will be parsed from the environment variable `RUST_LOG`.

[1]: https://docs.rs/tracing-subscriber/0.3.18/tracing_subscriber/filter/targets/struct.Targets.html#filtering-with-targets
core/lib/vlog/src/logs/mod.rs