parent
c593578a55
commit
04e5d5b71f
@ -0,0 +1,44 @@ |
|||||||
|
// Copyright 2014 The Gogs Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package middleware |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"log" |
||||||
|
"net/http" |
||||||
|
"runtime" |
||||||
|
"time" |
||||||
|
|
||||||
|
"github.com/codegangsta/martini" |
||||||
|
) |
||||||
|
|
||||||
|
var isWindows bool |
||||||
|
|
||||||
|
func init() { |
||||||
|
isWindows = runtime.GOOS == "windows" |
||||||
|
} |
||||||
|
|
||||||
|
func Logger() martini.Handler { |
||||||
|
return func(res http.ResponseWriter, req *http.Request, ctx martini.Context, log *log.Logger) { |
||||||
|
start := time.Now() |
||||||
|
log.Printf("Started %s %s", req.Method, req.URL.Path) |
||||||
|
|
||||||
|
rw := res.(martini.ResponseWriter) |
||||||
|
ctx.Next() |
||||||
|
|
||||||
|
content := fmt.Sprintf("Completed %v %s in %v", rw.Status(), http.StatusText(rw.Status()), time.Since(start)) |
||||||
|
if !isWindows { |
||||||
|
switch rw.Status() { |
||||||
|
case 200: |
||||||
|
content = fmt.Sprintf("\033[1;32%s\033[0m", content) |
||||||
|
case 304: |
||||||
|
content = fmt.Sprintf("\033[1;33%s\033[0m", content) |
||||||
|
case 404: |
||||||
|
content = fmt.Sprintf("\033[1;31%s\033[0m", content) |
||||||
|
} |
||||||
|
} |
||||||
|
log.Println(content) |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue