logging example

Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
This commit is contained in:
Erik Hollensbe
2022-01-21 01:20:09 -08:00
parent eda54224c6
commit 24222558ea
2 changed files with 38 additions and 0 deletions
+4
View File
@@ -10,3 +10,7 @@ hyper = { version = "*", features = [ "http1", "http2", "server", "runtime", "tc
http = "*"
async-recursion = "*"
tokio = { version = "*", features = [ "full" ] }
[dev-dependencies]
log = "*"
env_logger = "*"
+34
View File
@@ -0,0 +1,34 @@
use http::{Request, Response, StatusCode};
use hyper::Body;
use log::LevelFilter;
use ratpack::{app::App, compose_handler, handler::Params, Error, HTTPResult, ServerError};
async fn log(req: Request<Body>, resp: Option<Response<Body>>, _params: Params) -> HTTPResult {
log::trace!("New request: {}", req.uri().path());
Ok((req, resp))
}
async fn hello(req: Request<Body>, _resp: Option<Response<Body>>, params: Params) -> HTTPResult {
let name = params.get("name").unwrap();
log::info!("Saying hello to {}", name);
let bytes = Body::from(format!("hello, {}!\n", name));
return Ok((
req,
Some(Response::builder().status(200).body(bytes).unwrap()),
));
}
#[tokio::main]
async fn main() -> Result<(), ServerError> {
let mut app = App::new();
env_logger::builder()
.target(env_logger::Target::Stderr)
.filter(None, LevelFilter::Trace)
.init();
app.get("/:name", compose_handler!(log, hello));
app.serve("127.0.0.1:3000").await?;
Ok(())
}