mirror of
https://github.com/actix/actix-web.git
synced 2024-05-19 16:58:14 +00:00
feat: change log level based on response status code
This commit is contained in:
parent
d8df60bf4c
commit
7d659229f6
|
@ -16,7 +16,7 @@ use actix_service::{Service, Transform};
|
|||
use actix_utils::future::{ready, Ready};
|
||||
use bytes::Bytes;
|
||||
use futures_core::ready;
|
||||
use log::{debug, warn};
|
||||
use log::{debug, warn, Level};
|
||||
use pin_project_lite::pin_project;
|
||||
use regex::{Regex, RegexSet};
|
||||
use time::{format_description::well_known::Rfc3339, OffsetDateTime};
|
||||
|
@ -363,6 +363,12 @@ where
|
|||
debug!("Error in response: {:?}", error);
|
||||
}
|
||||
|
||||
let level = match res.response().status().as_u16() {
|
||||
300..=499 => Level::Warn,
|
||||
500..=599 => Level::Error,
|
||||
_ => Level::Info,
|
||||
};
|
||||
|
||||
let res = if let Some(ref mut format) = this.format {
|
||||
// to avoid polluting all the Logger types with the body parameter we swap the body
|
||||
// out temporarily since it's not usable in custom response functions anyway
|
||||
|
@ -393,6 +399,7 @@ where
|
|||
format,
|
||||
size: 0,
|
||||
log_target,
|
||||
level,
|
||||
})))
|
||||
}
|
||||
}
|
||||
|
@ -405,6 +412,7 @@ pin_project! {
|
|||
size: usize,
|
||||
time: OffsetDateTime,
|
||||
log_target: Cow<'static, str>,
|
||||
level: Level,
|
||||
}
|
||||
|
||||
impl<B> PinnedDrop for StreamLog<B> {
|
||||
|
@ -417,8 +425,9 @@ pin_project! {
|
|||
Ok(())
|
||||
};
|
||||
|
||||
log::info!(
|
||||
log::log!(
|
||||
target: this.log_target.as_ref(),
|
||||
this.level,
|
||||
"{}", FormatDisplay(&render)
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue