pub struct Style {
buf: Rc<RefCell<Buffer>, Global>,
spec: ColorSpec,
}
Expand description
A set of styles to apply to the terminal output.
Call Formatter::style
to get a Style
and use the builder methods to
set styling properties, like color and weight.
To print a value using the style, wrap it in a call to value
when the log
record is formatted.
Examples
Create a bold, red colored style and use it to print the log level:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut level_style = buf.style();
level_style.set_color(Color::Red).set_bold(true);
writeln!(buf, "{}: {}",
level_style.value(record.level()),
record.args())
});
Styles can be re-used to output multiple values:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut bold = buf.style();
bold.set_bold(true);
writeln!(buf, "{}: {} {}",
bold.value(record.level()),
bold.value("some bold text"),
record.args())
});
Fields§
§buf: Rc<RefCell<Buffer>, Global>
§spec: ColorSpec
Implementations§
§impl Style
impl Style
pub fn set_color(&mut self, color: Color) -> &mut Style
pub fn set_color(&mut self, color: Color) -> &mut Style
Set the text color.
Examples
Create a style with red text:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut style = buf.style();
style.set_color(Color::Red);
writeln!(buf, "{}", style.value(record.args()))
});
pub fn set_bold(&mut self, yes: bool) -> &mut Style
pub fn set_bold(&mut self, yes: bool) -> &mut Style
Set the text weight.
If yes
is true then text will be written in bold.
If yes
is false then text will be written in the default weight.
Examples
Create a style with bold text:
use std::io::Write;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut style = buf.style();
style.set_bold(true);
writeln!(buf, "{}", style.value(record.args()))
});
pub fn set_intense(&mut self, yes: bool) -> &mut Style
pub fn set_intense(&mut self, yes: bool) -> &mut Style
Set the text intensity.
If yes
is true then text will be written in a brighter color.
If yes
is false then text will be written in the default color.
Examples
Create a style with intense text:
use std::io::Write;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut style = buf.style();
style.set_intense(true);
writeln!(buf, "{}", style.value(record.args()))
});
pub fn set_bg(&mut self, color: Color) -> &mut Style
pub fn set_bg(&mut self, color: Color) -> &mut Style
Set the background color.
Examples
Create a style with a yellow background:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut style = buf.style();
style.set_bg(Color::Yellow);
writeln!(buf, "{}", style.value(record.args()))
});
pub fn value<T>(&self, value: T) -> StyledValue<'_, T>
pub fn value<T>(&self, value: T) -> StyledValue<'_, T>
Wrap a value in the style.
The same Style
can be used to print multiple different values.
Examples
Create a bold, red colored style and use it to print the log level:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut style = buf.style();
style.set_color(Color::Red).set_bold(true);
writeln!(buf, "{}: {}",
style.value(record.level()),
record.args())
});