Skip to main content

Logger

Struct Logger 

Source
pub struct Logger { /* private fields */ }
Expand description

Middleware for logging request and response info to the terminal.

Logger middleware uses standard log crate to log information. You should enable logger for ntex package to see access log. (env_logger or similar)

§Usage

Create Logger middleware with the specified format. Default Logger could be created with default method, it uses the default format:

ⓘ
 %a "%r" %s %b "%{Referer}i" "%{User-Agent}i" %T
use ntex::web::App;
use ntex::web::middleware::Logger;

fn main() {
    let app = App::default()
        .middleware(Logger::default())
        .middleware(Logger::new("%a %{User-Agent}i"));
}

§Format

%% The percent sign

%a Remote IP-address (IP-address of proxy if using reverse proxy)

%t Time when the request was started to process (in HTTP-date format, e.g. Thu, 04 Sep 2025 15:33:20 GMT)

%r First line of request

%s Response status code

%b Size of response in bytes, excluding HTTP headers

%T Time taken to serve the request, in seconds with six decimal places

%D Time taken to serve the request, in milliseconds with six decimal places

%U Request URL path, without the query string

%{FOO}i request.headers["FOO"]

%{FOO}o response.headers["FOO"]

%{FOO}e os.environ["FOO"]

Implementations§

Source§

impl Logger

Source

pub fn new(format: &str) -> Logger

Create Logger middleware with the specified format.

Source

pub fn exclude<T: Into<String>>(self, path: T) -> Self

Ignore and do not log access info for specified path.

Trait Implementations§

Source§

impl Debug for Logger

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Logger

Source§

fn default() -> Self

Create Logger middleware with format:

ⓘ
%a "%r" %s %b "%{Referer}i" "%{User-Agent}i" %T
Source§

impl<S, St> Middleware<S, St> for Logger

Source§

type Service = LoggerMiddleware<S>

Service created by this middleware.
Source§

fn create(&self, _: &St, service: S) -> Self::Service

Creates and returns a new middleware service.
Source§

fn apply_to<Sf, Req>( self, factory: Sf, ) -> ServiceChainFactory<ApplyMiddleware<Self, Sf>, St, Req>
where Sf: ServiceFactory<St, Req, Service = S>, Self: Sized, Self::Service: Service<St, Req>,

Creates a service factory that instantiates a service and applies the current middleware to it. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.