stderr 0.5.0

A library that using macro to write io::stderr() for error or io::stdout() for log optional like print!/println!.
Documentation

A Rust's library that using macro to write io::stderr() for error or io::stdout() for log optional.

Usage

Cargo.toml

[dependencies]
stderr = "0.5.0"

or

[dependencies]
stderr = { git = "https://github.com/biluohc/stderr", branch = "master", version = "0.5.0"}

Explain

About stderr

Usage as same as print!/println!.

  1. err!/errln!: Panics if writing to io::stdout() fails.
  2. errst!/errstln!: Do nothing if writing to io::stdout() fails(silent->st).

About stderr::loger::Loger

Avoid to note or use a bunch of print!()/println!() non-stop.
debug!()/debugln!() print message while args conntains -log or --log and debug follows it,or environment variable 'LOG' == debug.
Usage as same as err!/errln! and errst!/errstln!.

Example for bash:

    env LOG=debug  your_exe_file_path --log debug

If you neend to use debug!()/debugln!(): You must use Loger::init() before use the macro on the current process.
if you need to contrl it:
You can use Loger::set(bool) to replace Loger::init(),
Loger::arg(): Get args's -log/--log==debug value(bool),
Loger::var(): Get environment variable's LOG==debug value(bool).

Example

#[macro_use]
extern crate stderr;

fn main() {
    println!("err!/errln!/errst!/errstln!()@stderr !");
    let vec = vec![1, 2, 3, 4, 5];
    let s = std::env::args().nth(0).unwrap();

    err!("err!(expr\\n)\n");
    err!("err!(String: vec![1, 2, 3, 4, 5])\n{}: {:?}", s, vec);
    errln!();
    errln!("errln!(expr)");

    println!();

    errst!("errst!(expr\\n)\n");
    errst!("errst!(String: vec![1, 2, 3, 4, 5])\n{}: {:?}", s, vec);
    errstln!();
    errstln!("errstln!(expr)");

    use stderr::loger::Loger;
    Loger::init();
    debugln!();
    debugln!("debug!/debugln!()@Loger !");
    debug!("{}\n", s);
    debugln!("{:?}", vec);

    debugstln!();
    debugstln!("debugst!/debugstln!()@Loger !");
    debugst!("{}\n", s);
    debugstln!("{:?}", vec);
}