Repository: shssoichiro/oxipng (language: rust)

Issue:
Console log colors should have good contrast for readability and accessibility
Tested on Windows, the console has a black background as default (like many terminals).
In verbose mode, output is:

```text
Processing: P:\res\23.png
```

-- This first line is white, and quite readable.

```text
    32x32 pixels, PNG format
    8-bit Indexed (13 colors), non-interlaced
    IDAT size = 176 bytes
    File size = 297 bytes
Trying: 10 filters
    IDAT size = 176 bytes (0 bytes decrease)
    file size = 297 bytes (0 bytes = 0.00% decrease)
```

-- These lines are *dark navy* on black... virtually unreadable. :-(


Discussion / hints:
I definitely hear your concern, though this can be a tricky issue. The colours currently shown are simply the defaults defined by [env_logger](https://github.com/rust-cli/env_logger) for each level of logging (error, warn etc) and I'm a little reluctant to override them. They're different from the v8 release only because we changed the logger that we use. Part of the difficulty with colours is the terminal can define not only the background but also the text colours themselves. Could you post a screenshot of what you see?

For comparison, here's the default macOS terminal:
![macos](https://github.com/shssoichiro/oxipng/assets/4584038/cd24363d-ffce-44a5-934a-06a7032b8e15)

And the default VS Code terminal:
![vscode](https://github.com/shssoichiro/oxipng/assets/4584038/db12201d-7558-4b1b-94b8-bdda02d8c431)


On Windows 10 (w32):
![screenshot](https://github.com/shssoichiro/oxipng/assets/473224/7ea4144f-ebb5-475e-9983-7ce98a817a90)

I would say the accessibility issue here is a 'bug', more than a feature request...
But if I could make a feature request... I think the rainbow of colours here is quite visually distracting. My preference would be monotone, unless there's some critical error that really needs attention!
Ouch, that is totally unreadable 😆
We'll definitely have to do something here, though I'll also post this on the env_logger repo as they should probably change the defaults too.

Fix patch:
diff --git a/src/main.rs b/src/main.rs
index d2343edf..f2166785 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -418,8 +418,8 @@ fn parse_opts_into_struct(
         .filter_module(module_path!(), log_level)
         .format(|buf, record| {
             let style = match record.level() {
-                Level::Info => buf.style(),
-                _ => buf.default_level_style(record.level()),
+                Level::Error | Level::Warn => buf.default_level_style(record.level()),
+                _ => buf.style(), // Leave info, debug and trace unstyled
             };
             writeln!(buf, "{}", style.value(record.args()))
         })


Test patch: