mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Use custom logger middleware
This commit is contained in:
		
							
								
								
									
										44
									
								
								modules/middleware/logger.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								modules/middleware/logger.go
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								web.go
									
									
									
									
									
								
							@@ -46,11 +46,22 @@ func checkRunMode() {
 | 
				
			|||||||
	log.Info("Run Mode: %s", strings.Title(martini.Env))
 | 
						log.Info("Run Mode: %s", strings.Title(martini.Env))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func newMartini() *martini.ClassicMartini {
 | 
				
			||||||
 | 
						r := martini.NewRouter()
 | 
				
			||||||
 | 
						m := martini.New()
 | 
				
			||||||
 | 
						m.Use(middleware.Logger())
 | 
				
			||||||
 | 
						m.Use(martini.Recovery())
 | 
				
			||||||
 | 
						m.Use(martini.Static("public"))
 | 
				
			||||||
 | 
						m.MapTo(r, (*martini.Routes)(nil))
 | 
				
			||||||
 | 
						m.Action(r.Handle)
 | 
				
			||||||
 | 
						return &martini.ClassicMartini{m, r}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func runWeb(*cli.Context) {
 | 
					func runWeb(*cli.Context) {
 | 
				
			||||||
	checkRunMode()
 | 
						checkRunMode()
 | 
				
			||||||
	log.Info("%s %s", base.AppName, base.AppVer)
 | 
						log.Info("%s %s", base.AppName, base.AppVer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m := martini.Classic()
 | 
						m := newMartini()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Middlewares.
 | 
						// Middlewares.
 | 
				
			||||||
	m.Use(render.Renderer(render.Options{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 | 
						m.Use(render.Renderer(render.Options{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user