mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-09 19:51:47 +00:00
simulator: Persist beacon logs (#7394)
Beacon logs in the simulator are printed only to stdout. The logs are usually large, so persisting them would be helpful for debugging. Added `--log-dir` parameter to the simulators and a step to upload the logs to Artifacts. (Update) Added `--disable-stdout-logging` to disable stdout logging, making the CI page cleaner.
This commit is contained in:
@@ -11,6 +11,7 @@ use node_test_rig::{
|
||||
};
|
||||
use rayon::prelude::*;
|
||||
use std::cmp::max;
|
||||
use std::path::PathBuf;
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
@@ -63,6 +64,8 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
.expect("missing debug-level");
|
||||
|
||||
let continue_after_checks = matches.get_flag("continue-after-checks");
|
||||
let log_dir = matches.get_one::<String>("log-dir").map(PathBuf::from);
|
||||
let disable_stdout_logging = matches.get_flag("disable-stdout-logging");
|
||||
|
||||
println!("Basic Simulator:");
|
||||
println!(" nodes: {}", node_count);
|
||||
@@ -70,6 +73,8 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
println!(" validators-per-node: {}", validators_per_node);
|
||||
println!(" speed-up-factor: {}", speed_up_factor);
|
||||
println!(" continue-after-checks: {}", continue_after_checks);
|
||||
println!(" log-dir: {:?}", log_dir);
|
||||
println!(" disable-stdout-logging: {}", disable_stdout_logging);
|
||||
|
||||
// Generate the directories and keystores required for the validator clients.
|
||||
let validator_files = (0..node_count)
|
||||
@@ -91,21 +96,21 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
env_builder,
|
||||
logger_config,
|
||||
stdout_logging_layer,
|
||||
_file_logging_layer,
|
||||
file_logging_layer,
|
||||
_sse_logging_layer_opt,
|
||||
_libp2p_discv5_layer,
|
||||
) = tracing_common::construct_logger(
|
||||
LoggerConfig {
|
||||
path: None,
|
||||
path: log_dir,
|
||||
debug_level: tracing_common::parse_level(&log_level.clone()),
|
||||
logfile_debug_level: tracing_common::parse_level(&log_level.clone()),
|
||||
log_format: None,
|
||||
logfile_format: None,
|
||||
log_color: true,
|
||||
logfile_color: true,
|
||||
logfile_color: false,
|
||||
disable_log_timestamp: false,
|
||||
max_log_size: 0,
|
||||
max_log_number: 0,
|
||||
max_log_size: 200,
|
||||
max_log_number: 5,
|
||||
compression: false,
|
||||
is_restricted: true,
|
||||
sse_logging: false,
|
||||
@@ -115,12 +120,27 @@ pub fn run_basic_sim(matches: &ArgMatches) -> Result<(), String> {
|
||||
EnvironmentBuilder::minimal(),
|
||||
);
|
||||
|
||||
if let Err(e) = tracing_subscriber::registry()
|
||||
.with(
|
||||
let workspace_filter = build_workspace_filter()?;
|
||||
let mut logging_layers = vec![];
|
||||
if !disable_stdout_logging {
|
||||
logging_layers.push(
|
||||
stdout_logging_layer
|
||||
.with_filter(logger_config.debug_level)
|
||||
.with_filter(build_workspace_filter()?),
|
||||
)
|
||||
.with_filter(workspace_filter.clone())
|
||||
.boxed(),
|
||||
);
|
||||
}
|
||||
if let Some(file_logging_layer) = file_logging_layer {
|
||||
logging_layers.push(
|
||||
file_logging_layer
|
||||
.with_filter(logger_config.logfile_debug_level)
|
||||
.with_filter(workspace_filter)
|
||||
.boxed(),
|
||||
);
|
||||
}
|
||||
|
||||
if let Err(e) = tracing_subscriber::registry()
|
||||
.with(logging_layers)
|
||||
.try_init()
|
||||
{
|
||||
eprintln!("Failed to initialize dependency logging: {e}");
|
||||
|
||||
Reference in New Issue
Block a user