Updated dependencies and made logging more readable

This commit is contained in:
Michael Bryan 2017-12-30 18:43:46 +08:00
parent 549a9ffd54
commit cba16a0083
No known key found for this signature in database
GPG Key ID: E9C602B0D9A998DC
6 changed files with 27 additions and 20 deletions

View File

@ -16,15 +16,16 @@ exclude = [
[dependencies] [dependencies]
clap = "2.24" clap = "2.24"
chrono = "0.4"
handlebars = "0.29" handlebars = "0.29"
serde = "1.0" serde = "1.0"
serde_derive = "1.0" serde_derive = "1.0"
error-chain = "0.11.0" error-chain = "0.11.0"
serde_json = "1.0" serde_json = "1.0"
pulldown-cmark = "0.1" pulldown-cmark = "0.1"
lazy_static = "0.2" lazy_static = "1.0"
log = "0.3" log = "0.4"
env_logger = "0.4.0" env_logger = "0.5.0-rc.1"
toml = "0.4" toml = "0.4"
memchr = "2.0.1" memchr = "2.0.1"
open = "1.1" open = "1.1"
@ -37,8 +38,8 @@ time = { version = "0.1.34", optional = true }
crossbeam = { version = "0.3", optional = true } crossbeam = { version = "0.3", optional = true }
# Serve feature # Serve feature
iron = { version = "0.5", optional = true } iron = { version = "0.6", optional = true }
staticfile = { version = "0.4", optional = true } staticfile = { version = "0.5", optional = true }
ws = { version = "0.7", optional = true} ws = { version = "0.7", optional = true}
[build-dependencies] [build-dependencies]
@ -47,7 +48,7 @@ error-chain = "0.11"
[dev-dependencies] [dev-dependencies]
select = "0.4" select = "0.4"
pretty_assertions = "0.4" pretty_assertions = "0.4"
walkdir = "1.0" walkdir = "2.0"
[features] [features]
default = ["output", "watch", "serve"] default = ["output", "watch", "serve"]

View File

@ -1,5 +1,6 @@
#[macro_use] #[macro_use]
extern crate clap; extern crate clap;
extern crate chrono;
extern crate env_logger; extern crate env_logger;
extern crate error_chain; extern crate error_chain;
extern crate log; extern crate log;
@ -9,9 +10,11 @@ extern crate open;
use std::env; use std::env;
use std::ffi::OsStr; use std::ffi::OsStr;
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use std::io::Write;
use clap::{App, AppSettings, ArgMatches}; use clap::{App, AppSettings, ArgMatches};
use log::{LogLevelFilter, LogRecord}; use chrono::Local;
use env_logger::LogBuilder; use log::LevelFilter;
use env_logger::Builder;
use error_chain::ChainedError; use error_chain::ChainedError;
pub mod build; pub mod build;
@ -67,19 +70,24 @@ fn main() {
} }
fn init_logger() { fn init_logger() {
let format = |record: &LogRecord| { let mut builder = Builder::new();
let module_path = record.location().module_path();
format!("{}:{}: {}", record.level(), module_path, record.args())
};
let mut builder = LogBuilder::new(); builder.format(|formatter, record| {
builder.format(format).filter(None, LogLevelFilter::Info); writeln!(formatter, "{} [{}] ({}): {}",
Local::now().format("%Y-%m-%d %H:%M:%S"),
record.level(),
record.target(),
record.args())
});
if let Ok(var) = env::var("RUST_LOG") { if let Ok(var) = env::var("RUST_LOG") {
builder.parse(&var); builder.parse(&var);
} else {
// if no RUST_LOG provided, default to logging at the Info level
builder.filter(None, LevelFilter::Info);
} }
builder.init().unwrap(); builder.init();
} }
fn get_book_dir(args: &ArgMatches) -> PathBuf { fn get_book_dir(args: &ArgMatches) -> PathBuf {

View File

@ -64,7 +64,7 @@ impl MDBook {
Config::default() Config::default()
}; };
if log_enabled!(::log::LogLevel::Trace) { if log_enabled!(::log::Level::Trace) {
for line in format!("Config: {:#?}", config).lines() { for line in format!("Config: {:#?}", config).lines() {
trace!("{}", line); trace!("{}", line);
} }

View File

@ -689,8 +689,6 @@ mod tests {
/// [example]: https://github.com/rust-lang/book/blob/2c942dc094f4ddcdc7aba7564f80782801197c99/second-edition/src/SUMMARY.md#basic-rust-literacy /// [example]: https://github.com/rust-lang/book/blob/2c942dc094f4ddcdc7aba7564f80782801197c99/second-edition/src/SUMMARY.md#basic-rust-literacy
#[test] #[test]
fn can_have_a_subheader_between_nested_items() { fn can_have_a_subheader_between_nested_items() {
extern crate env_logger;
env_logger::init().ok();
let src = "- [First](./first.md)\n\n## Subheading\n\n- [Second](./second.md)\n"; let src = "- [First](./first.md)\n\n## Subheading\n\n- [Second](./second.md)\n";
let should_be = vec![ let should_be = vec![
SummaryItem::Link(Link { SummaryItem::Link(Link {

View File

@ -14,7 +14,7 @@ macro_rules! summary_md_test {
($name:ident, $filename:expr) => { ($name:ident, $filename:expr) => {
#[test] #[test]
fn $name() { fn $name() {
env_logger::init().ok(); env_logger::try_init().ok();
let filename = Path::new(env!("CARGO_MANIFEST_DIR")) let filename = Path::new(env!("CARGO_MANIFEST_DIR"))
.join("tests") .join("tests")

View File

@ -11,7 +11,7 @@ use dummy_book::{assert_contains_strings, DummyBook};
use std::fs; use std::fs;
use std::path::Path; use std::path::Path;
use std::ffi::OsStr; use std::ffi::OsStr;
use walkdir::{DirEntry, WalkDir, WalkDirIterator}; use walkdir::{DirEntry, WalkDir};
use select::document::Document; use select::document::Document;
use select::predicate::{Class, Name, Predicate}; use select::predicate::{Class, Name, Predicate};
use mdbook::errors::*; use mdbook::errors::*;