filter by time

This commit is contained in:
Aleksey Kladov 2019-04-14 23:18:58 +03:00
parent b228947b68
commit 5b7012318c
3 changed files with 44 additions and 29 deletions

View file

@ -8,31 +8,14 @@ use ra_prof;
fn main() -> Result<()> {
std::env::set_var("RUST_BACKTRACE", "short");
let logger = Logger::with_env_or_str("error").duplicate_to_stderr(Duplicate::All);
match std::env::var("RA_INTERNAL_MODE") {
match std::env::var("RA_LOG_DIR") {
Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?,
_ => logger.start()?,
};
// Filtering syntax
// env RA_PROFILE=* // dump everything
// env RA_PROFILE=foo|bar|baz // enabled only selected entries
// env RA_PROFILE=*@3 // dump everything, up to depth 3
let filter = match std::env::var("RA_PROFILE") {
Ok(p) => {
let mut p = p.as_str();
let depth = if let Some(idx) = p.rfind("@") {
let depth: usize = p[idx + 1..].parse().expect("invalid profile depth");
p = &p[..idx];
depth
} else {
999
};
let allowed =
if p == "*" { Vec::new() } else { p.split(";").map(String::from).collect() };
ra_prof::Filter::new(depth, allowed)
}
ra_prof::set_filter(match std::env::var("RA_PROFILE") {
Ok(spec) => ra_prof::Filter::from_spec(&spec),
Err(_) => ra_prof::Filter::disabled(),
};
ra_prof::set_filter(filter);
});
log::info!("lifecycle: server started");
match ::std::panic::catch_unwind(main_inner) {
Ok(res) => {