Skip to content

Commit 6faad3e

Browse files
committed
auto merge of #16416 : nick29581/rust/log, r=pnkfelix
Previously we would accept an empty log level without an equals sign, but not with one. This addresses that minor nit. E.g., `RUST_LOG=rustc::middle::trans=` will work the same as `RUST_LOG=rustc::middle::trans`.
2 parents 5e720f0 + 81241dc commit 6faad3e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/liblog/directive.rs

+12-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub fn parse_logging_spec(spec: &str) -> Vec<LogDirective> {
3838
for s in spec.split(',') {
3939
if s.len() == 0 { continue }
4040
let mut parts = s.split('=');
41-
let (log_level, name) = match (parts.next(), parts.next(), parts.next()) {
41+
let (log_level, name) = match (parts.next(), parts.next().map(|s| s.trim()), parts.next()) {
4242
(Some(part0), None, None) => {
4343
// if the single argument is a log-level string or number,
4444
// treat that as a global fallback
@@ -47,6 +47,7 @@ pub fn parse_logging_spec(spec: &str) -> Vec<LogDirective> {
4747
None => (::MAX_LOG_LEVEL, Some(part0)),
4848
}
4949
}
50+
(Some(part0), Some(""), None) => (::MAX_LOG_LEVEL, Some(part0)),
5051
(Some(part0), Some(part1), None) => {
5152
match parse_log_level(part1) {
5253
Some(num) => (num, Some(part0)),
@@ -120,6 +121,16 @@ mod tests {
120121
assert_eq!(dirs[0].level, ::WARN);
121122
}
122123

124+
#[test]
125+
fn parse_logging_spec_empty_log_level() {
126+
// test parse_logging_spec with '' as log level
127+
let dirs = parse_logging_spec("crate1::mod1=wrong,crate2=");
128+
let dirs = dirs.as_slice();
129+
assert_eq!(dirs.len(), 1);
130+
assert_eq!(dirs[0].name, Some("crate2".to_string()));
131+
assert_eq!(dirs[0].level, ::MAX_LOG_LEVEL);
132+
}
133+
123134
#[test]
124135
fn parse_logging_spec_global() {
125136
// test parse_logging_spec with no crate

0 commit comments

Comments
 (0)