frame_omni_bencher/main.rs
1// This file is part of Substrate.
2
3// Copyright (C) Parity Technologies (UK) Ltd.
4// SPDX-License-Identifier: Apache-2.0
5
6// Licensed under the Apache License, Version 2.0 (the "License");
7// you may not use this file except in compliance with the License.
8// You may obtain a copy of the License at
9//
10// http://www.apache.org/licenses/LICENSE-2.0
11//
12// Unless required by applicable law or agreed to in writing, software
13// distributed under the License is distributed on an "AS IS" BASIS,
14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15// See the License for the specific language governing permissions and
16// limitations under the License.
17
18mod command;
19
20// Force the linker to keep the polkadot_jemalloc_shim crate (and its #[global_allocator]).
21#[cfg(target_os = "linux")]
22extern crate polkadot_jemalloc_shim;
23
24use clap::Parser;
25use sc_cli::Result;
26use tracing_subscriber::EnvFilter;
27
28fn main() -> Result<()> {
29 setup_logger();
30
31 command::Command::parse().run()
32}
33
34/// Setup logging with `info` as default level. Can be set via `RUST_LOG` env.
35fn setup_logger() {
36 // Disable these log targets because they are spammy.
37 let unwanted_targets =
38 &["cranelift_codegen", "wasm_cranelift", "wasmtime_jit", "wasmtime_cranelift", "wasm_jit"];
39
40 let mut env_filter =
41 EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
42
43 for target in unwanted_targets {
44 env_filter = env_filter.add_directive(format!("{}=off", target).parse().unwrap());
45 }
46
47 tracing_subscriber::fmt()
48 .with_env_filter(env_filter)
49 .with_writer(std::io::stderr)
50 .init();
51}