tower_web/middleware/log/
middleware.rs1use super::LogService;
2use middleware::Middleware;
3
4use http;
5use tower_service::Service;
6
7#[derive(Debug)]
9pub struct LogMiddleware {
10 target: &'static str,
11}
12
13impl LogMiddleware {
14 pub fn new(target: &'static str) -> LogMiddleware {
16 LogMiddleware { target }
17 }
18}
19
20impl<S, RequestBody, ResponseBody> Middleware<S> for LogMiddleware
21where S: Service<Request = http::Request<RequestBody>,
22 Response = http::Response<ResponseBody>>,
23 S::Error: ::std::error::Error,
24{
25 type Request = http::Request<RequestBody>;
26 type Response = http::Response<ResponseBody>;
27 type Error = S::Error;
28 type Service = LogService<S>;
29
30 fn wrap(&self, service: S) -> Self::Service {
31 LogService::new(service, self.target)
32 }
33}