todo/backend/src/logging.rs

27 lines
596 B
Rust

use std::fmt;
use std::task::{Context, Poll};
use tower::Service;
pub struct LogService<S> {
pub service: S,
}
impl<S, Request> Service<Request> for LogService<S>
where
S: Service<Request>,
Request: fmt::Debug,
{
type Response = S::Response;
type Error = S::Error;
type Future = S::Future;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.service.poll_ready(cx)
}
fn call(&mut self, request: Request) -> Self::Future {
log::debug!("request = {:?}", request);
self.service.call(request)
}
}