7171 html_root_url = "http://doc.rust-lang.org/env_logger/" ) ]
7272#![ cfg_attr( test, deny( warnings) ) ]
7373
74- extern crate regex;
7574#[ macro_use]
7675extern crate slog;
7776extern crate slog_term;
7877extern crate slog_stdlog;
7978extern crate slog_scope;
80- extern crate slog_async;
8179extern crate log;
8280
83- use regex:: Regex ;
8481use std:: { env, result, sync} ;
8582use std:: cell:: RefCell ;
8683use slog:: * ;
8784
85+ #[ cfg( feature = "regex" ) ]
86+ #[ path = "regex.rs" ]
87+ mod filter;
88+
89+ #[ cfg( not( feature = "regex" ) ) ]
90+ #[ path = "string.rs" ]
91+ mod filter;
92+
8893thread_local ! {
8994 static TL_BUF : RefCell <String > = RefCell :: new( String :: new( ) )
9095}
@@ -93,7 +98,7 @@ thread_local! {
9398pub struct EnvLogger < T : Drain > {
9499 drain : T ,
95100 directives : Vec < LogDirective > ,
96- filter : Option < Regex > ,
101+ filter : Option < filter :: Filter > ,
97102}
98103
99104/// LogBuilder acts as builder for initializing the EnvLogger.
@@ -102,7 +107,7 @@ pub struct EnvLogger<T : Drain> {
102107pub struct LogBuilder < T : Drain > {
103108 drain : T ,
104109 directives : Vec < LogDirective > ,
105- filter : Option < Regex > ,
110+ filter : Option < filter :: Filter > ,
106111}
107112
108113impl < T : Drain > LogBuilder < T > {
@@ -271,7 +276,7 @@ pub fn init() -> std::result::Result<slog_scope::GlobalLoggerGuard, log::SetLogg
271276
272277/// Parse a logging specification string (e.g: "crate1,crate2::mod3,crate3::x=error/foo")
273278/// and return a vector with log directives.
274- fn parse_logging_spec ( spec : & str ) -> ( Vec < LogDirective > , Option < Regex > ) {
279+ fn parse_logging_spec ( spec : & str ) -> ( Vec < LogDirective > , Option < filter :: Filter > ) {
275280 let mut dirs = Vec :: new ( ) ;
276281
277282 let mut parts = spec. split ( '/' ) ;
@@ -318,7 +323,7 @@ fn parse_logging_spec(spec: &str) -> (Vec<LogDirective>, Option<Regex>) {
318323 } } ) ;
319324
320325 let filter = filter. map_or ( None , |filter| {
321- match Regex :: new ( filter) {
326+ match filter :: Filter :: new ( filter) {
322327 Ok ( re) => Some ( re) ,
323328 Err ( e) => {
324329 println ! ( "warning: invalid regex filter - {}" , e) ;
0 commit comments