aboutsummaryrefslogtreecommitdiff
path: root/server_example_test.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-12-04 13:14:38 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-12-04 13:14:38 +0200
commit0cd9a866a7fadd31e0148f0ca2a95c0521718ead (patch)
tree0d18174eb74dce6e14cd1631aa3244a9be18245b /server_example_test.go
parentImproved wording (diff)
downloadfasthttp-0cd9a866a7fadd31e0148f0ca2a95c0521718ead.tar.gz
fasthttp-0cd9a866a7fadd31e0148f0ca2a95c0521718ead.tar.bz2
fasthttp-0cd9a866a7fadd31e0148f0ca2a95c0521718ead.zip
Added an example for RequestCtx.Logger
Diffstat (limited to 'server_example_test.go')
-rw-r--r--server_example_test.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/server_example_test.go b/server_example_test.go
index 27a695e..bd51e9e 100644
--- a/server_example_test.go
+++ b/server_example_test.go
@@ -143,7 +143,7 @@ func ExampleRequestCtx_TimeoutError() {
// Since the long-running task is still running and may access ctx,
// we must call TimeoutError before returning from requestHandler.
//
- // Otherwise our program will suffer from data races.
+ // Otherwise the program will suffer from data races.
ctx.TimeoutError("Timeout!")
}
}
@@ -152,3 +152,24 @@ func ExampleRequestCtx_TimeoutError() {
log.Fatalf("error in ListenAndServe: %s", err)
}
}
+
+func ExampleRequestCtx_Logger() {
+ requestHandler := func(ctx *RequestCtx) {
+ if string(ctx.Path()) == "/top-secret" {
+ ctx.Logger().Printf("Alarm! Alien intrusion detected!")
+ ctx.Error("Access denied!", StatusForbidden)
+ return
+ }
+
+ // Logger may be cached in local variables.
+ logger := ctx.Logger()
+
+ logger.Printf("Good request from User-Agent %q", ctx.Request.Header.UserAgent())
+ fmt.Fprintf(ctx, "Good request to %q", ctx.Path())
+ logger.Printf("Multiple log messages may be written during a single request")
+ }
+
+ if err := ListenAndServe(":80", requestHandler); err != nil {
+ log.Fatalf("error in ListenAndServe: %s", err)
+ }
+}