Advertisement
Guest User

Untitled

a guest
Aug 24th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. router := http.NewServeMux()
  2. router.HandleFunc("/", requestHandler)
  3.  
  4. s := &http.Server{
  5. Addr: ":8080",
  6. Handler: router,
  7. ErrorLog: myLogger,
  8. }
  9. log.Fatal(s.ListenAndServe())
  10.  
  11. package main
  12.  
  13. import (
  14. "log"
  15. "net/http"
  16. )
  17.  
  18. type LogRecord struct {
  19. http.ResponseWriter
  20. status int
  21. }
  22.  
  23. func (r *LogRecord) Write(p []byte) (int, error) {
  24. return r.ResponseWriter.Write(p)
  25. }
  26.  
  27. func (r *LogRecord) WriteHeader(status int) {
  28. r.status = status
  29. r.ResponseWriter.WriteHeader(status)
  30. }
  31.  
  32. func WrapHandler(f http.Handler) http.HandlerFunc {
  33. return func(w http.ResponseWriter, r *http.Request) {
  34. record := &LogRecord{
  35. ResponseWriter: w,
  36. }
  37.  
  38. f.ServeHTTP(record, r)
  39.  
  40. log.Println("Bad Request ", record.status)
  41.  
  42. if record.status == http.StatusBadRequest {
  43. log.Println("Bad Request ", r)
  44. }
  45. }
  46. }
  47.  
  48. func main() {
  49. router := http.NewServeMux()
  50.  
  51. s := &http.Server{
  52. Addr: ":8080",
  53. Handler: WrapHandler(router),
  54. }
  55. log.Fatal(s.ListenAndServe())
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement