From cff7ae0b0defcdc15200579f85b938c8d3e4976a Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Jul 2023 16:37:02 +0300 Subject: [PATCH] fix: no more ansi colored logs (#4613) Allure does not support ansi colored logs, yet `compute_ctl` has them. Upgrade criterion to get rid of atty dependency, disable ansi colors, remove atty dependency and disable ansi feature of tracing-subscriber. This is a heavy-handed approach. I am not aware of a workflow where you'd want to connect a terminal directly to for example `compute_ctl`, usually you find the logs in a file. If someone had been using colors, they will now need to: - turn the `tracing-subscriber.default-features` to `true` - edit their wanted project to have colors I decided to explicitly disable ansi colors in case we would have in future a dependency accidentally enabling the feature on `tracing-subscriber`, which would be quite surprising but not unimagineable. By getting rid of `atty` from dependencies we get rid of . --- Cargo.lock | 104 ++++++------------------------------ Cargo.toml | 5 +- compute_tools/src/logger.rs | 1 + libs/utils/Cargo.toml | 1 - libs/utils/src/logging.rs | 2 +- proxy/Cargo.toml | 1 - proxy/src/logging.rs | 2 +- workspace_hack/Cargo.toml | 2 +- 8 files changed, 22 insertions(+), 96 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c3dc0243dd..0c0ed530fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -200,17 +200,6 @@ dependencies = [ "critical-section", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -805,18 +794,6 @@ dependencies = [ "libloading", ] -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "bitflags", - "clap_lex 0.2.4", - "indexmap", - "textwrap", -] - [[package]] name = "clap" version = "4.3.0" @@ -837,7 +814,7 @@ dependencies = [ "anstream", "anstyle", "bitflags", - "clap_lex 0.5.0", + "clap_lex", "strsim", ] @@ -853,15 +830,6 @@ dependencies = [ "syn 2.0.16", ] -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - [[package]] name = "clap_lex" version = "0.5.0" @@ -915,7 +883,7 @@ version = "0.1.0" dependencies = [ "anyhow", "chrono", - "clap 4.3.0", + "clap", "compute_api", "futures", "hyper", @@ -977,7 +945,7 @@ name = "control_plane" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.3.0", + "clap", "comfy-table", "compute_api", "git-version", @@ -1047,19 +1015,19 @@ dependencies = [ [[package]] name = "criterion" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", - "atty", "cast", "ciborium", - "clap 3.2.25", + "clap", "criterion-plot", + "is-terminal", "itertools", - "lazy_static", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", @@ -1676,15 +1644,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.2.6" @@ -2270,16 +2229,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -2507,31 +2456,19 @@ dependencies = [ "winapi", ] -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - [[package]] name = "outref" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "pagectl" version = "0.1.0" dependencies = [ "anyhow", "bytes", - "clap 4.3.0", + "clap", "git-version", "pageserver", "postgres_ffi", @@ -2550,7 +2487,7 @@ dependencies = [ "byteorder", "bytes", "chrono", - "clap 4.3.0", + "clap", "close_fds", "const_format", "consumption_metrics", @@ -3050,12 +2987,11 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "atty", "base64 0.13.1", "bstr", "bytes", "chrono", - "clap 4.3.0", + "clap", "consumption_metrics", "futures", "git-version", @@ -3570,7 +3506,7 @@ dependencies = [ "byteorder", "bytes", "chrono", - "clap 4.3.0", + "clap", "const_format", "crc32c", "fs2", @@ -4000,7 +3936,7 @@ dependencies = [ "anyhow", "async-stream", "bytes", - "clap 4.3.0", + "clap", "const_format", "futures", "futures-core", @@ -4181,12 +4117,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - [[package]] name = "thiserror" version = "1.0.40" @@ -4602,7 +4532,7 @@ name = "trace" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.3.0", + "clap", "pageserver_api", "utils", "workspace_hack", @@ -4704,7 +4634,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", - "nu-ansi-term", "once_cell", "regex", "serde", @@ -4873,7 +4802,6 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "atty", "bincode", "byteorder", "bytes", @@ -4950,7 +4878,7 @@ name = "wal_craft" version = "0.1.0" dependencies = [ "anyhow", - "clap 4.3.0", + "clap", "env_logger", "log", "once_cell", @@ -5330,7 +5258,7 @@ dependencies = [ "anyhow", "bytes", "chrono", - "clap 4.3.0", + "clap", "clap_builder", "crossbeam-utils", "either", diff --git a/Cargo.toml b/Cargo.toml index 6d327f5802..4b9bd8b961 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,6 @@ license = "Apache-2.0" anyhow = { version = "1.0", features = ["backtrace"] } async-stream = "0.3" async-trait = "0.1" -atty = "0.2.14" aws-config = { version = "0.55", default-features = false, features=["rustls"] } aws-sdk-s3 = "0.27" aws-smithy-http = "0.55" @@ -129,7 +128,7 @@ tonic = {version = "0.9", features = ["tls", "tls-roots"]} tracing = "0.1" tracing-error = "0.2.0" tracing-opentelemetry = "0.18.0" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-subscriber = { version = "0.3", default_features = false, features = ["smallvec", "fmt", "tracing-log", "std", "env-filter"] } url = "2.2" uuid = { version = "1.2", features = ["v4", "serde"] } walkdir = "2.3.2" @@ -171,7 +170,7 @@ utils = { version = "0.1", path = "./libs/utils/" } workspace_hack = { version = "0.1", path = "./workspace_hack/" } ## Build dependencies -criterion = "0.4" +criterion = "0.5.1" rcgen = "0.10" rstest = "0.17" tempfile = "3.4" diff --git a/compute_tools/src/logger.rs b/compute_tools/src/logger.rs index f6fc882968..3ae68de8ef 100644 --- a/compute_tools/src/logger.rs +++ b/compute_tools/src/logger.rs @@ -18,6 +18,7 @@ pub fn init_tracing_and_logging(default_log_level: &str) -> anyhow::Result<()> { .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new(default_log_level)); let fmt_layer = tracing_subscriber::fmt::layer() + .with_ansi(false) .with_target(false) .with_writer(std::io::stderr); diff --git a/libs/utils/Cargo.toml b/libs/utils/Cargo.toml index 8239ffff57..87b0082356 100644 --- a/libs/utils/Cargo.toml +++ b/libs/utils/Cargo.toml @@ -5,7 +5,6 @@ edition.workspace = true license.workspace = true [dependencies] -atty.workspace = true sentry.workspace = true async-trait.workspace = true anyhow.workspace = true diff --git a/libs/utils/src/logging.rs b/libs/utils/src/logging.rs index 2b8c852d86..7b32bf2841 100644 --- a/libs/utils/src/logging.rs +++ b/libs/utils/src/logging.rs @@ -84,7 +84,7 @@ pub fn init( let r = r.with({ let log_layer = tracing_subscriber::fmt::layer() .with_target(false) - .with_ansi(atty::is(atty::Stream::Stdout)) + .with_ansi(false) .with_writer(std::io::stdout); let log_layer = match log_format { LogFormat::Json => log_layer.json().boxed(), diff --git a/proxy/Cargo.toml b/proxy/Cargo.toml index d43ea714b1..c8b0cc7cf0 100644 --- a/proxy/Cargo.toml +++ b/proxy/Cargo.toml @@ -7,7 +7,6 @@ license.workspace = true [dependencies] anyhow.workspace = true async-trait.workspace = true -atty.workspace = true base64.workspace = true bstr.workspace = true bytes = { workspace = true, features = ["serde"] } diff --git a/proxy/src/logging.rs b/proxy/src/logging.rs index 0c8c2858b9..3405b8cbc6 100644 --- a/proxy/src/logging.rs +++ b/proxy/src/logging.rs @@ -18,7 +18,7 @@ pub async fn init() -> anyhow::Result { .from_env_lossy(); let fmt_layer = tracing_subscriber::fmt::layer() - .with_ansi(atty::is(atty::Stream::Stderr)) + .with_ansi(false) .with_writer(std::io::stderr) .with_target(false); diff --git a/workspace_hack/Cargo.toml b/workspace_hack/Cargo.toml index 677b59f453..63a65d3889 100644 --- a/workspace_hack/Cargo.toml +++ b/workspace_hack/Cargo.toml @@ -54,7 +54,7 @@ toml_edit = { version = "0.19", features = ["serde"] } tower = { version = "0.4", features = ["balance", "buffer", "limit", "retry", "timeout", "util"] } tracing = { version = "0.1", features = ["log"] } tracing-core = { version = "0.1" } -tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } +tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt", "json", "smallvec", "tracing-log"] } url = { version = "2", features = ["serde"] } [build-dependencies]