diff --git a/modules/base/conf.go b/modules/base/conf.go index 6610bce1a..9f6de56b9 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 d002d3c24..7eaf66500 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 7171ff264..08fe1ed15 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 3f60c6c6f..66289b6e4 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 f8c9b4d3d..fc56997b5 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 a0e397117..018d8ffd7 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()