diff --git a/Cargo.lock b/Cargo.lock index 5421ad504..f2fa2d00d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1395,7 +1395,6 @@ dependencies = [ "percent-encoding", "pgp", "pretty_assertions", - "pretty_env_logger", "proptest", "qrcodegen", "quick-xml", @@ -1451,7 +1450,7 @@ dependencies = [ "base64 0.22.1", "deltachat", "deltachat-contact-tools", - "env_logger 0.11.3", + "env_logger", "futures", "log", "num-traits", @@ -1475,10 +1474,10 @@ dependencies = [ "deltachat", "dirs", "log", - "pretty_env_logger", "rusqlite", "rustyline", "tokio", + "tracing-subscriber", ] [[package]] @@ -1488,13 +1487,13 @@ dependencies = [ "anyhow", "deltachat", "deltachat-jsonrpc", - "env_logger 0.11.3", "futures-lite 2.3.0", "log", "serde", "serde_json", "tokio", "tokio-util", + "tracing-subscriber", "yerpc", ] @@ -2150,19 +2149,6 @@ dependencies = [ "regex", ] -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.11.3" @@ -4759,16 +4745,6 @@ dependencies = [ "yansi", ] -[[package]] -name = "pretty_env_logger" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" -dependencies = [ - "env_logger 0.10.2", - "log", -] - [[package]] name = "primeorder" version = "0.13.6" @@ -6381,15 +6357,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "testdir" version = "0.9.1" diff --git a/Cargo.toml b/Cargo.toml index 2c9d00814..816337aad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,6 @@ once_cell = { workspace = true } percent-encoding = "2.3" parking_lot = "0.12" pgp = { version = "0.11", default-features = false } -pretty_env_logger = { version = "0.5", optional = true } qrcodegen = "1.7.0" quick-xml = "0.31" quoted_printable = "0.5" @@ -119,7 +118,6 @@ anyhow = { version = "1", features = ["backtrace"] } # Enable `backtrace` featur criterion = { version = "0.5.1", features = ["async_tokio"] } futures-lite = "2.3.0" log = "0.4" -pretty_env_logger = "0.5" proptest = { version = "1", default-features = false, features = ["std"] } tempfile = "3" testdir = "0.9.0" diff --git a/deltachat-repl/Cargo.toml b/deltachat-repl/Cargo.toml index 02f7ad381..7827fa39a 100644 --- a/deltachat-repl/Cargo.toml +++ b/deltachat-repl/Cargo.toml @@ -11,10 +11,10 @@ anyhow = "1" deltachat = { path = "..", features = ["internals"]} dirs = "5" log = "0.4.21" -pretty_env_logger = "0.5" rusqlite = "0.31" rustyline = "14" tokio = { version = "1.37.0", features = ["fs", "rt-multi-thread", "macros"] } +tracing-subscriber = { version = "0.3", features = ["env-filter"] } [features] default = ["vendored"] diff --git a/deltachat-repl/src/main.rs b/deltachat-repl/src/main.rs index 9f666b318..00e885f46 100644 --- a/deltachat-repl/src/main.rs +++ b/deltachat-repl/src/main.rs @@ -32,6 +32,7 @@ use rustyline::{ }; use tokio::fs; use tokio::runtime::Handle; +use tracing_subscriber::EnvFilter; mod cmdline; use self::cmdline::*; @@ -483,9 +484,10 @@ async fn handle_cmd( #[tokio::main] async fn main() -> Result<(), Error> { - pretty_env_logger::formatted_timed_builder() - .parse_default_env() - .filter_module("deltachat_repl", log::LevelFilter::Info) + tracing_subscriber::fmt() + .with_env_filter( + EnvFilter::from_default_env().add_directive("deltachat_repl=info".parse()?), + ) .init(); let args = std::env::args().collect(); diff --git a/deltachat-rpc-server/Cargo.toml b/deltachat-rpc-server/Cargo.toml index dc4161d71..5bafe76fb 100644 --- a/deltachat-rpc-server/Cargo.toml +++ b/deltachat-rpc-server/Cargo.toml @@ -14,13 +14,13 @@ deltachat-jsonrpc = { path = "../deltachat-jsonrpc", default-features = false } deltachat = { path = "..", default-features = false } anyhow = "1" -env_logger = { version = "0.11.3" } futures-lite = "2.3.0" log = "0.4" serde_json = "1" serde = { version = "1.0", features = ["derive"] } tokio = { version = "1.37.0", features = ["io-std"] } tokio-util = "0.7.9" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } yerpc = { version = "0.5.2", features = ["anyhow_expose", "openrpc"] } [features] diff --git a/deltachat-rpc-server/src/main.rs b/deltachat-rpc-server/src/main.rs index 2ed976609..0702be77e 100644 --- a/deltachat-rpc-server/src/main.rs +++ b/deltachat-rpc-server/src/main.rs @@ -11,6 +11,7 @@ use deltachat::constants::DC_VERSION_STR; use deltachat_jsonrpc::api::{Accounts, CommandApi}; use futures_lite::stream::StreamExt; use tokio::io::{self, AsyncBufReadExt, BufReader}; +use tracing_subscriber::EnvFilter; use yerpc::RpcServer as _; #[cfg(target_family = "unix")] @@ -60,7 +61,13 @@ async fn main_impl() -> Result<()> { #[cfg(target_family = "unix")] let mut sigterm = signal_unix::signal(signal_unix::SignalKind::terminate())?; - env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); + // Logs from `log` crate and traces from `tracing` crate + // are configurable with `RUST_LOG` environment variable + // and go to stderr to avoid interferring with JSON-RPC using stdout. + tracing_subscriber::fmt() + .with_env_filter(EnvFilter::from_default_env()) + .with_writer(std::io::stderr) + .init(); let path = std::env::var("DC_ACCOUNTS_PATH").unwrap_or_else(|_| "accounts".to_string()); log::info!("Starting with accounts directory `{}`.", path); diff --git a/deny.toml b/deny.toml index 49638def4..c860dea4f 100644 --- a/deny.toml +++ b/deny.toml @@ -45,7 +45,6 @@ skip = [ { name = "dlopen2", version = "0.4.1" }, { name = "ed25519-dalek", version = "1.0.1" }, { name = "ed25519", version = "1.5.3" }, - { name = "env_logger", version = "0.10.2" }, { name = "event-listener", version = "2.5.3" }, { name = "event-listener", version = "4.0.3" }, { name = "fastrand", version = "1.9.0" },