Skip to main content

16_logger/
16_logger.rs

1use flyer::{
2    error::Error,
3    loggers::{Logger, sentry::Sentry},
4    request::Request,
5    response::Response,
6    server
7};
8
9pub struct DebuggerLogger { }
10
11impl DebuggerLogger {
12    pub fn new() -> Self {
13        Self { }
14    }
15}
16
17impl Logger for DebuggerLogger {
18    async fn call(&self, error: Error, req: Request, _res: Response) -> () {
19        println!("\r\n\r\nError: {}\r\nMessage: {}\r\nPath: {}r\n\r\n", error.error, error.message, req.path());
20    }
21}
22
23pub fn main() {
24    let server = server("127.0.0.1", 9999);
25
26    server.router().group("/", |router| {
27        router.get("/", async |_req, res| {
28            res.html("<h1>Page With No Error Show</h1>")
29        });
30        router.get("error", async |_req, res| {
31            let user_id: Option<String> = None;
32
33            user_id.unwrap();
34
35            res.html("<h1>Page With Error Will No Show</h1>")
36        });
37    });
38
39    // Custom logger
40    server.logger(DebuggerLogger::new());
41
42    // Prebuilt logger for sentry
43    // server.logger(Sentry::new("SENTRY_DNS", "ENVIRONMENT"));
44
45    println!("\r\n\r\nRunning Server: {}\r\n\r\n", server.address());
46
47    server.listen();
48}