Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional color and style support using paris crate #84

Merged
merged 8 commits into from Nov 6, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Expand Up @@ -25,4 +25,5 @@ default = ["termcolor"]
[dependencies]
log = { version = "0.4.*", features = ["std"] }
termcolor = { version = "1.1.*", optional = true }
paris = { version = "*", optional = true }
manio marked this conversation as resolved.
Show resolved Hide resolved
chrono = "0.4.1"
19 changes: 19 additions & 0 deletions README.md
Expand Up @@ -61,6 +61,25 @@ simplelog = "^0.10.0"
```
to your `Cargo.toml`

## ANSI color and style support

This crate can internally depend on a [paris](https://github.com/0x20F/paris) crate to provide support for ANSI color and styles.
To use this feature you need to set a _paris_ feature, like this:
```
[dependencies]
simplelog = { version = "^0.10.0", features = ["paris"] }
```
in your `Cargo.toml`

After this you can use e.g. the following call:
```rust
info!("I can write <b>bold</b> text or use tags to <red>color it</>");
```

This will automatically generates terminal control sequences for desired styles.

More formatting info: [paris crate documentation](https://github.com/0x20F/paris)

## [Documentation](https://docs.rs/simplelog/)

## Contributing
Expand Down
3 changes: 3 additions & 0 deletions src/lib.rs
Expand Up @@ -39,6 +39,9 @@ use log::Log;
#[cfg(test)]
use log::*;

#[cfg(feature = "paris")]
mod paris;
manio marked this conversation as resolved.
Show resolved Hide resolved

/// Trait to have a common interface to obtain the Level of Loggers
///
/// Necessary for CombinedLogger to calculate
Expand Down
39 changes: 39 additions & 0 deletions src/paris/mod.rs
@@ -0,0 +1,39 @@
#[allow(missing_docs)]
manio marked this conversation as resolved.
Show resolved Hide resolved
#[macro_export]
macro_rules! info {
($($args:tt)+) => {
log::info!("{}", paris::formatter::colorize_string(format!($($args)*)));
};
}

#[allow(missing_docs)]
#[macro_export]
macro_rules! debug {
($($args:tt)+) => {
log::debug!("{}", paris::formatter::colorize_string(format!($($args)*)));
};
}

#[allow(missing_docs)]
#[macro_export]
macro_rules! trace {
($($args:tt)+) => {
log::trace!("{}", paris::formatter::colorize_string(format!($($args)*)));
};
}

#[allow(missing_docs)]
#[macro_export]
macro_rules! warn {
($($args:tt)+) => {
log::warn!("{}", paris::formatter::colorize_string(format!($($args)*)));
};
}

#[allow(missing_docs)]
#[macro_export]
macro_rules! error {
($($args:tt)+) => {
log::error!("{}", paris::formatter::colorize_string(format!($($args)*)));
};
}