Skip to content

Commit 378d72c

Browse files
committed
feat: introduce cleanups
1 parent 3d306c1 commit 378d72c

File tree

11 files changed

+76
-70
lines changed

11 files changed

+76
-70
lines changed

fendermint/app/src/cmd/debug.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ cmd! {
2525

2626
cmd! {
2727
DebugIpcCommands(self) {
28-
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default())?;
28+
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default());
2929

3030
match self {
3131
DebugIpcCommands::ExportTopDownEvents(args) => {

fendermint/app/src/cmd/eth.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::{
1616

1717
cmd! {
1818
EthArgs(self, settings: EthSettings) {
19-
let _trace_file_guard = set_global_tracing_subscriber(&settings.tracing)?;
19+
let _trace_file_guard = set_global_tracing_subscriber(&settings.tracing);
2020

2121
match self.command.clone() {
2222
EthCommands::Run { ws_url, http_url, connect_retry_delay } => {

fendermint/app/src/cmd/genesis.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use super::key::read_public_key;
2424

2525
cmd! {
2626
GenesisArgs(self) {
27-
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default())?;
27+
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default());
2828
let genesis_file = self.genesis_file.clone();
2929

3030
match &self.command {

fendermint/app/src/cmd/key.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use crate::{
2323

2424
cmd! {
2525
KeyArgs(self) {
26-
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default())?;
26+
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default());
2727

2828
match &self.command {
2929
KeyCommands::Gen(args) => args.exec(()).await,

fendermint/app/src/cmd/materializer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use super::key::{read_secret_key, read_secret_key_hex};
2323

2424
cmd! {
2525
MaterializerArgs(self) {
26-
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default())?;
26+
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default());
2727

2828
let data_dir = expand_tilde(&self.data_dir);
2929
let dm = || DockerMaterializer::new(&data_dir, self.seed).map(|m| m.with_policy(DropPolicy::PERSISTENT));

fendermint/app/src/cmd/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::{
1010
use anyhow::{anyhow, Context};
1111
use async_trait::async_trait;
1212

13-
use ipc_observability::traces::create_subscriber;
13+
use ipc_observability::traces::create_temporary_subscriber;
1414
use tracing::subscriber;
1515

1616
pub mod config;
@@ -84,7 +84,7 @@ fn settings(opts: &Options) -> anyhow::Result<Settings> {
8484
d => d,
8585
};
8686

87-
subscriber::with_default(create_subscriber(), || {
87+
subscriber::with_default(create_temporary_subscriber(), || {
8888
tracing::info!(
8989
path = config_dir.to_string_lossy().into_owned(),
9090
"reading configuration"

fendermint/app/src/cmd/rpc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use super::key::read_secret_key;
4242

4343
cmd! {
4444
RpcArgs(self) {
45-
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default())?;
45+
let _trace_file_guard = set_global_tracing_subscriber(&TracesSettings::default());
4646

4747
let client = FendermintClient::new_http(self.url.clone(), self.proxy_url.clone())?;
4848
match self.command.clone() {

fendermint/app/src/cmd/run.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ use ipc_observability::traces::set_global_tracing_subscriber;
4343

4444
cmd! {
4545
RunArgs(self, settings) {
46-
let _trace_file_guard = set_global_tracing_subscriber(&settings.tracing)?;
46+
let _trace_file_guard = set_global_tracing_subscriber(&settings.tracing);
4747

4848
run(settings).await
4949
}

fendermint/app/src/main.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
pub use fendermint_app_options as options;
55
pub use fendermint_app_settings as settings;
66

7-
use ipc_observability::traces::create_subscriber;
7+
use ipc_observability::traces::create_temporary_subscriber;
88
use tracing::subscriber;
99

1010
mod cmd;
@@ -20,12 +20,12 @@ fn init_panic_handler() {
2020
// let stacktrace = std::backtrace::Backtrace::capture();
2121
let stacktrace = std::backtrace::Backtrace::force_capture();
2222

23-
subscriber::with_default(create_subscriber(), || {
23+
subscriber::with_default(create_temporary_subscriber(), || {
2424
tracing::error!(
25-
"panic occurred: {error:?}\n{stacktrace}",
26-
error = info,
27-
stacktrace = stacktrace
28-
)
25+
stacktrace = stacktrace.to_string(),
26+
info = info.to_string(),
27+
"panicking"
28+
);
2929
});
3030

3131
// We could exit the application if any of the background tokio tasks panic.
@@ -41,7 +41,7 @@ async fn main() {
4141
init_panic_handler();
4242

4343
if let Err(e) = cmd::exec(&opts).await {
44-
subscriber::with_default(create_subscriber(), || {
44+
subscriber::with_default(create_temporary_subscriber(), || {
4545
tracing::error!("failed to execute {:?}: {e:?}", opts)
4646
});
4747
std::process::exit(fendermint_app::AppExitCode::UnknownError as i32);

ipc/observability/src/traces.rs

Lines changed: 39 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -6,74 +6,63 @@ use tracing::Level;
66
pub use tracing_appender::non_blocking;
77
pub use tracing_appender::non_blocking::WorkerGuard;
88
use tracing_appender::rolling::RollingFileAppender;
9-
use tracing_subscriber::{fmt, fmt::Subscriber, layer::SubscriberExt, Layer};
9+
use tracing_subscriber::{fmt, fmt::Subscriber, layer::SubscriberExt, Layer, LogLevel};
1010

11-
use crate::traces_settings::{FileLayerSettings, LogLevel, TracesSettings};
11+
use crate::traces_settings::{FileLayerSettings, TracesSettings};
1212
use crate::tracing_layers::DomainEventFilterLayer;
13-
use anyhow::Result;
1413

15-
pub fn create_subscriber() -> Subscriber {
14+
//
15+
pub fn create_temporary_subscriber() -> Subscriber {
1616
tracing_subscriber::FmtSubscriber::builder()
1717
.with_max_level(Level::TRACE)
1818
.with_target(false)
1919
.with_file(true)
2020
.with_line_number(true)
21-
// builds the subscriber.
2221
.finish()
2322
}
2423

25-
pub fn set_global_tracing_subscriber(config: &TracesSettings) -> Result<WorkerGuard> {
24+
pub fn set_global_tracing_subscriber(config: &TracesSettings) -> Option<WorkerGuard> {
25+
let console_filter = match config.console {
26+
Some(console_settings) => console_settings.level_to_filter(),
27+
None => LogLevel::default().to_filter(),
28+
};
29+
2630
// log all traces to stderr (reserving stdout for any actual output such as from the CLI commands)
2731
let console_layer = fmt::layer()
2832
.with_writer(std::io::stderr)
2933
.with_target(false)
3034
.with_file(true)
3135
.with_line_number(true)
32-
.with_filter(
33-
config
34-
.console
35-
.level
36+
.with_filter(console_filter);
37+
38+
let (file_layer, file_guard) = match config.file {
39+
Some(file_settings) if file_settings.enabled => {
40+
let (non_blocking, file_guard) = non_blocking(create_file_appender(&file_settings));
41+
42+
let file_layer = fmt::layer()
43+
.json()
44+
.with_writer(non_blocking)
45+
.with_span_events(fmt::format::FmtSpan::CLOSE)
46+
.with_target(false)
47+
.with_file(true)
48+
.with_line_number(true)
49+
.with_filter(file_settings.level_to_filter());
50+
51+
let domains = file_settings
52+
.domain_filter
3653
.as_ref()
37-
.unwrap_or(&LogLevel::default())
38-
.to_filter()?,
39-
);
54+
.map(|v| v.iter().map(|s| s.to_string()).collect());
55+
56+
let events = file_settings
57+
.events_filter
58+
.as_ref()
59+
.map(|v| v.iter().map(|s| s.to_string()).collect());
60+
61+
let file_layer = DomainEventFilterLayer::new(domains, events, file_layer);
4062

41-
let (file_layer, file_guard) = if config.file.enabled {
42-
let (non_blocking, file_guard) = non_blocking(create_file_appender(&config.file));
43-
44-
let file_layer = fmt::layer()
45-
.json()
46-
.with_writer(non_blocking)
47-
.with_span_events(fmt::format::FmtSpan::CLOSE)
48-
.with_target(false)
49-
.with_file(true)
50-
.with_line_number(true)
51-
.with_filter(
52-
config
53-
.file
54-
.level
55-
.as_ref()
56-
.unwrap_or(&LogLevel::default())
57-
.to_filter()?,
58-
);
59-
60-
let domains = config
61-
.file
62-
.domain_filter
63-
.as_ref()
64-
.map(|v| v.iter().map(|s| s.to_string()).collect());
65-
66-
let events = config
67-
.file
68-
.events_filter
69-
.as_ref()
70-
.map(|v| v.iter().map(|s| s.to_string()).collect());
71-
72-
let file_layer = DomainEventFilterLayer::new(domains, events, file_layer);
73-
74-
(Some(file_layer), Some(file_guard))
75-
} else {
76-
(None, None)
63+
(Some(file_layer), Some(file_guard))
64+
}
65+
_ => (None, None),
7766
};
7867

7968
let registry = tracing_subscriber::registry()
@@ -83,7 +72,7 @@ pub fn set_global_tracing_subscriber(config: &TracesSettings) -> Result<WorkerGu
8372
tracing::subscriber::set_global_default(registry)
8473
.expect("Unable to set a global tracing subscriber");
8574

86-
file_guard.ok_or_else(|| anyhow::anyhow!("file guard not created"))
75+
file_guard
8776
}
8877

8978
fn create_file_appender(settings: &FileLayerSettings) -> RollingFileAppender {

0 commit comments

Comments
 (0)