message: Prints log in shadowsocks crate only by default
diff: @@ -6,18 +6,21 @@ use log::LevelFilter;
  pub fn init(debug_level: u64, bin_name: &str) {
  let mut log_builder = Builder::from_default_env();
  - log_builder.filter(None, LevelFilter::Info);
  + log_builder.filter(Some(bin_name), LevelFilter::Info);
  + log_builder.filter(Some("shadowsocks"), LevelFilter::Info);
  log_builder.format(move |buf, record| {
  write!(
  buf,
  "{} {:<5}",
  - Local::now().to_rfc3339_opts(SecondsFormat::Secs, false),
  + Local::now().to_rfc3339_opts(SecondsFormat::Millis, false),
  buf.default_styled_level(record.level())
  )?;
  if debug_level > 0 {
  - write!(buf, " [{}]", record.module_path().unwrap_or(""))?;
  + if let Some(mp) = record.module_path() {
  + write!(buf, " [{}]", mp)?;
  + }
  }
  writeln!(buf, " {}", record.args())
  @@ -28,18 +31,21 @@ pub fn init(debug_level: u64, bin_name: &str) {
  // Default filter
  }
  1 => {
  - log_builder.filter(Some(bin_name), LevelFilter::Debug);
  - }
  - 2 => {
  log_builder
  .filter(Some(bin_name), LevelFilter::Debug)
  .filter(Some("shadowsocks"), LevelFilter::Debug);
  }
  - 3 => {
  + 2 => {
  log_builder
  .filter(Some(bin_name), LevelFilter::Trace)
  .filter(Some("shadowsocks"), LevelFilter::Trace);
  }
  + 3 => {
  + log_builder
  + .filter(Some(bin_name), LevelFilter::Trace)
  + .filter(Some("shadowsocks"), LevelFilter::Trace)
  + .filter(None, LevelFilter::Debug);
  + }
  _ => {
  log_builder.filter(None, LevelFilter::Trace);
  }
  