Disable log reloading by default (#9966)

* Disable log reloading by default

This disables the log reloading that was enabled by default. The problem
is that the log reload implementation of `tracing` is using a lock to
make the layer replaceable. This lock needs to be locked every time we
need to check if a particular target is enabled (assuming the log level
is high enough). This kills the performance when for example
`sometarget=trace` logging is enabled.

* 🤦

* Remove unused parameter

* Fix test

* Fix
This commit is contained in:
Bastian Köcher
2021-10-08 13:46:08 +02:00
committed by GitHub
parent 36d25d4994
commit f4b287c7c4
8 changed files with 19 additions and 20 deletions
+4 -5
View File
@@ -522,7 +522,6 @@ pub trait CliConfiguration<DCV: DefaultConfigurationValues = ()>: Sized {
dev_key_seed: self.dev_key_seed(is_dev)?,
tracing_targets: self.tracing_targets()?,
tracing_receiver: self.tracing_receiver()?,
disable_log_reloading: self.is_log_filter_reloading_disabled()?,
chain_spec,
max_runtime_instances,
announce_block: self.announce_block()?,
@@ -542,9 +541,9 @@ pub trait CliConfiguration<DCV: DefaultConfigurationValues = ()>: Sized {
Ok(self.shared_params().log_filters().join(","))
}
/// Is log reloading disabled (enabled by default)
fn is_log_filter_reloading_disabled(&self) -> Result<bool> {
Ok(self.shared_params().is_log_filter_reloading_disabled())
/// Is log reloading enabled?
fn enable_log_reloading(&self) -> Result<bool> {
Ok(self.shared_params().enable_log_reloading())
}
/// Should the log color output be disabled?
@@ -563,7 +562,7 @@ pub trait CliConfiguration<DCV: DefaultConfigurationValues = ()>: Sized {
sp_panic_handler::set(&C::support_url(), &C::impl_version());
let mut logger = LoggerBuilder::new(self.log_filters()?);
logger.with_log_reloading(!self.is_log_filter_reloading_disabled()?);
logger.with_log_reloading(self.enable_log_reloading()?);
if let Some(tracing_targets) = self.tracing_targets()? {
let tracing_receiver = self.tracing_receiver()?;
@@ -50,13 +50,15 @@ pub struct SharedParams {
#[structopt(long)]
pub disable_log_color: bool,
/// Disable feature to dynamically update and reload the log filter.
/// Enable feature to dynamically update and reload the log filter.
///
/// Be aware that enabling this feature can lead to a performance decrease up to factor six or
/// more. Depending on the global logging level the performance decrease changes.
///
/// By default this feature is enabled, however it leads to a small performance decrease.
/// The `system_addLogFilter` and `system_resetLogFilter` RPCs will have no effect with this
/// option set.
#[structopt(long = "disable-log-reloading")]
pub disable_log_reloading: bool,
/// option not being set.
#[structopt(long)]
pub enable_log_reloading: bool,
/// Sets a custom profiling filter. Syntax is the same as for logging: <target>=<level>
#[structopt(long = "tracing-targets", value_name = "TARGETS")]
@@ -107,9 +109,9 @@ impl SharedParams {
self.disable_log_color
}
/// Is log reloading disabled
pub fn is_log_filter_reloading_disabled(&self) -> bool {
self.disable_log_reloading
/// Is log reloading enabled
pub fn enable_log_reloading(&self) -> bool {
self.enable_log_reloading
}
/// Receiver to process tracing messages.