diff --git a/session/ledis/ledis_session.go b/session/ledis/ledis_session.go index 68f37b08..6b201f56 100644 --- a/session/ledis/ledis_session.go +++ b/session/ledis/ledis_session.go @@ -100,7 +100,7 @@ func (lp *Provider) SessionInit(maxlifetime int64, savePath string) error { nowLedis, err := ledis.Open(cfg) c, err = nowLedis.Select(lp.db) if err != nil { - println(err) + session.SLogger.Println(err) return nil } return nil diff --git a/session/mysql/sess_mysql.go b/session/mysql/sess_mysql.go index 969d26c9..93ea31ed 100644 --- a/session/mysql/sess_mysql.go +++ b/session/mysql/sess_mysql.go @@ -1,3 +1,4 @@ + // Copyright 2014 beego Author. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -111,11 +112,14 @@ func (st *SessionStore) SessionRelease(w http.ResponseWriter) { defer st.c.Close() b, err := session.EncodeGob(st.values) if err != nil { + session.SLogger.Println(err) return } - st.c.Exec("UPDATE "+TableName+" set `session_data`=?, `session_expiry`=? where session_key=?", + _, err = st.c.Exec("UPDATE "+TableName+" set `session_data`=?, `session_expiry`=? where session_key=?", b, time.Now().Unix(), st.sid) - + if err != nil { + session.SLogger.Println(err) + } } // Provider mysql session provider @@ -128,6 +132,7 @@ type Provider struct { func (mp *Provider) connectInit() *sql.DB { db, e := sql.Open("mysql", mp.savePath) if e != nil { + session.SLogger.Println(e) return nil } return db @@ -223,6 +228,7 @@ func (mp *Provider) SessionAll() int { var total int err := c.QueryRow("SELECT count(*) as num from " + TableName).Scan(&total) if err != nil { + session.SLogger.Println(err) return 0 } return total diff --git a/session/sess_file.go b/session/sess_file.go index 9265b030..dda56b3a 100644 --- a/session/sess_file.go +++ b/session/sess_file.go @@ -16,7 +16,6 @@ package session import ( "errors" - "fmt" "io" "io/ioutil" "net/http" @@ -82,6 +81,7 @@ func (fs *FileSessionStore) SessionID() string { func (fs *FileSessionStore) SessionRelease(w http.ResponseWriter) { b, err := EncodeGob(fs.values) if err != nil { + SLogger.Println(err) return } _, err = os.Stat(path.Join(filepder.savePath, string(fs.sid[0]), string(fs.sid[1]), fs.sid)) @@ -123,7 +123,7 @@ func (fp *FileProvider) SessionRead(sid string) (Store, error) { err := os.MkdirAll(path.Join(fp.savePath, string(sid[0]), string(sid[1])), 0777) if err != nil { - println(err.Error()) + SLogger.Println(err.Error()) } _, err = os.Stat(path.Join(fp.savePath, string(sid[0]), string(sid[1]), sid)) var f *os.File @@ -191,7 +191,7 @@ func (fp *FileProvider) SessionAll() int { return a.visit(path, f, err) }) if err != nil { - fmt.Printf("filepath.Walk() returned %v\n", err) + SLogger.Printf("filepath.Walk() returned %v\n", err) return 0 } return a.total @@ -205,11 +205,11 @@ func (fp *FileProvider) SessionRegenerate(oldsid, sid string) (Store, error) { err := os.MkdirAll(path.Join(fp.savePath, string(oldsid[0]), string(oldsid[1])), 0777) if err != nil { - println(err.Error()) + SLogger.Println(err.Error()) } err = os.MkdirAll(path.Join(fp.savePath, string(sid[0]), string(sid[1])), 0777) if err != nil { - println(err.Error()) + SLogger.Println(err.Error()) } _, err = os.Stat(path.Join(fp.savePath, string(sid[0]), string(sid[1]), sid)) var newf *os.File diff --git a/session/session.go b/session/session.go index 9fe99a17..09c200c5 100644 --- a/session/session.go +++ b/session/session.go @@ -32,8 +32,11 @@ import ( "encoding/hex" "encoding/json" "fmt" + "io" + "log" "net/http" "net/url" + "os" "time" ) @@ -61,6 +64,8 @@ type Provider interface { var provides = make(map[string]Provider) +var SLogger = newSessionLog(os.Stderr) + // Register makes a session provide available by the provided name. // If Register is called twice with the same name or if driver is nil, // it panics. @@ -296,3 +301,15 @@ func (manager *Manager) isSecure(req *http.Request) bool { } return true } + +// Log implement the log.Logger +type sessionLog struct { + *log.Logger +} + +// NewLog set io.Writer to create a Logger for session. +func newSessionLog(out io.Writer) *sessionLog { + sl := new(sessionLog) + sl.Logger = log.New(out, "[SESSION]", 1e9) + return sl +}