From bd9d90d8c48965e4e78fd56147c465ba80ec5ed5 Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Wed, 19 Mar 2014 04:48:45 -0400
Subject: [PATCH] Add some log

---
 modules/base/conf.go          | 7 +++++--
 modules/middleware/context.go | 7 ++++++-
 routers/repo/repo.go          | 3 +++
 routers/user/setting.go       | 4 ++++
 routers/user/user.go          | 3 +++
 web.go                        | 2 +-
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/modules/base/conf.go b/modules/base/conf.go
index 6610bce1ab..9f6de56b9d 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -10,6 +10,7 @@ import (
 	"os/exec"
 	"path"
 	"path/filepath"
+	"strings"
 
 	"github.com/Unknwon/com"
 	"github.com/Unknwon/goconfig"
@@ -63,9 +64,10 @@ func newLogService() {
 	}
 
 	// Log level.
-	level, ok := logLevels[Cfg.MustValue("log."+mode, "LEVEL", "Trace")]
+	levelName := Cfg.MustValue("log."+mode, "LEVEL", "Trace")
+	level, ok := logLevels[levelName]
 	if !ok {
-		fmt.Printf("Unknown log level: %s\n", Cfg.MustValue("log."+mode, "LEVEL", "Trace"))
+		fmt.Printf("Unknown log level: %s\n", levelName)
 		os.Exit(2)
 	}
 
@@ -99,6 +101,7 @@ func newLogService() {
 	}
 
 	log.NewLogger(Cfg.MustInt64("log", "BUFFER_LEN", 10000), mode, config)
+	log.Info("Log Mode: %s(%s)", strings.Title(mode), levelName)
 }
 
 func newMailService() {
diff --git a/modules/middleware/context.go b/modules/middleware/context.go
index d002d3c24e..7eaf665005 100644
--- a/modules/middleware/context.go
+++ b/modules/middleware/context.go
@@ -67,8 +67,13 @@ func (ctx *Context) RenderWithErr(msg, tpl string, form auth.Form) {
 
 // Handle handles and logs error by given status.
 func (ctx *Context) Handle(status int, title string, err error) {
-	ctx.Data["ErrorMsg"] = err
 	log.Error("%s: %v", title, err)
+	if martini.Dev == martini.Prod {
+		ctx.Render.HTML(500, "status/500", ctx.Data)
+		return
+	}
+
+	ctx.Data["ErrorMsg"] = err
 	ctx.Render.HTML(status, fmt.Sprintf("status/%d", status), ctx.Data)
 }
 
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index 7171ff2640..08fe1ed15b 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -7,6 +7,7 @@ package repo
 import (
 	"github.com/gogits/gogs/models"
 	"github.com/gogits/gogs/modules/auth"
+	"github.com/gogits/gogs/modules/log"
 	"github.com/gogits/gogs/modules/middleware"
 )
 
@@ -23,6 +24,7 @@ func Create(ctx *middleware.Context, form auth.CreateRepoForm) {
 	_, err := models.CreateRepository(ctx.User, form.RepoName, form.Description,
 		form.Language, form.License, form.Visibility == "private", form.InitReadme == "on")
 	if err == nil {
+		log.Trace("%s Repository created: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, form.RepoName)
 		ctx.Render.Redirect("/"+ctx.User.Name+"/"+form.RepoName, 302)
 		return
 	} else if err == models.ErrRepoAlreadyExist {
@@ -48,6 +50,7 @@ func SettingPost(ctx *middleware.Context) {
 
 		if err := models.DeleteRepository(ctx.User.Id, ctx.Repo.Repository.Id, ctx.User.LowerName); err != nil {
 			ctx.Handle(200, "repo.Delete", err)
+			log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.LowerName)
 			return
 		}
 	}
diff --git a/routers/user/setting.go b/routers/user/setting.go
index 3f60c6c6fb..66289b6e4d 100644
--- a/routers/user/setting.go
+++ b/routers/user/setting.go
@@ -46,6 +46,7 @@ func Setting(ctx *middleware.Context, form auth.UpdateProfileForm) {
 
 	ctx.Data["IsSuccess"] = true
 	ctx.Render.HTML(200, "user/setting", ctx.Data)
+	log.Trace("%s User setting updated: %s", ctx.Req.RequestURI, ctx.User.LowerName)
 }
 
 func SettingPassword(ctx *middleware.Context, form auth.UpdatePasswdForm) {
@@ -82,6 +83,7 @@ func SettingPassword(ctx *middleware.Context, form auth.UpdatePasswdForm) {
 
 	ctx.Data["Owner"] = user
 	ctx.Render.HTML(200, "user/password", ctx.Data)
+	log.Trace("%s User password updated: %s", ctx.Req.RequestURI, ctx.User.LowerName)
 }
 
 func SettingSSHKeys(ctx *middleware.Context, form auth.AddSSHKeyForm) {
@@ -112,6 +114,7 @@ func SettingSSHKeys(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 				"err": err.Error(),
 			})
 		} else {
+			log.Trace("%s User SSH key deleted: %s", ctx.Req.RequestURI, ctx.User.LowerName)
 			ctx.Render.JSON(200, map[string]interface{}{
 				"ok": true,
 			})
@@ -137,6 +140,7 @@ func SettingSSHKeys(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 				return
 			}
 			ctx.Handle(200, "ssh.AddPublicKey", err)
+			log.Trace("%s User SSH key added: %s", ctx.Req.RequestURI, ctx.User.LowerName)
 			return
 		} else {
 			ctx.Data["AddSSHKeySuccess"] = true
diff --git a/routers/user/user.go b/routers/user/user.go
index f8c9b4d3dd..fc56997b58 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -6,6 +6,7 @@ package user
 
 import (
 	"fmt"
+	"strings"
 
 	"github.com/codegangsta/martini"
 	"github.com/martini-contrib/render"
@@ -14,6 +15,7 @@ import (
 	"github.com/gogits/gogs/models"
 	"github.com/gogits/gogs/modules/auth"
 	"github.com/gogits/gogs/modules/base"
+	"github.com/gogits/gogs/modules/log"
 	"github.com/gogits/gogs/modules/middleware"
 )
 
@@ -146,6 +148,7 @@ func SignUp(ctx *middleware.Context, form auth.RegisterForm) {
 		return
 	}
 
+	log.Trace("%s User created: %s", ctx.Req.RequestURI, strings.ToLower(form.UserName))
 	ctx.Render.Redirect("/user/login")
 }
 
diff --git a/web.go b/web.go
index a0e3971175..018d8ffd79 100644
--- a/web.go
+++ b/web.go
@@ -47,8 +47,8 @@ func checkRunMode() {
 }
 
 func runWeb(*cli.Context) {
-	log.Info("%s %s", base.AppName, base.AppVer)
 	checkRunMode()
+	log.Info("%s %s", base.AppName, base.AppVer)
 
 	m := martini.Classic()