summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/context.go18
-rw-r--r--model/client.go2
-rw-r--r--store/store.go4
3 files changed, 17 insertions, 7 deletions
diff --git a/api/context.go b/api/context.go
index e3f279e90..e6439e977 100644
--- a/api/context.go
+++ b/api/context.go
@@ -195,18 +195,22 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
func (c *Context) LogAudit(extraInfo string) {
- audit := &model.Audit{UserId: c.Session.UserId, IpAddress: c.IpAddress, Action: c.Path, ExtraInfo: extraInfo, SessionId: c.Session.AltId}
- Srv.Store.Audit().Save(audit)
+ go func() {
+ audit := &model.Audit{UserId: c.Session.UserId, IpAddress: c.IpAddress, Action: c.Path, ExtraInfo: extraInfo, SessionId: c.Session.AltId}
+ <-Srv.Store.Audit().Save(audit)
+ }()
}
func (c *Context) LogAuditWithUserId(userId, extraInfo string) {
- if len(c.Session.UserId) > 0 {
- extraInfo = strings.TrimSpace(extraInfo + " session_user=" + c.Session.UserId)
- }
+ go func() {
+ if len(c.Session.UserId) > 0 {
+ extraInfo = strings.TrimSpace(extraInfo + " session_user=" + c.Session.UserId)
+ }
- audit := &model.Audit{UserId: userId, IpAddress: c.IpAddress, Action: c.Path, ExtraInfo: extraInfo, SessionId: c.Session.AltId}
- Srv.Store.Audit().Save(audit)
+ audit := &model.Audit{UserId: userId, IpAddress: c.IpAddress, Action: c.Path, ExtraInfo: extraInfo, SessionId: c.Session.AltId}
+ <-Srv.Store.Audit().Save(audit)
+ }()
}
func (c *Context) LogError(err *model.AppError) {
diff --git a/model/client.go b/model/client.go
index 6fcfa5043..17e2466df 100644
--- a/model/client.go
+++ b/model/client.go
@@ -5,6 +5,7 @@ package model
import (
"bytes"
+ l4g "code.google.com/p/log4go"
"fmt"
"io/ioutil"
"net/http"
@@ -93,6 +94,7 @@ func getCookie(name string, resp *http.Response) *http.Cookie {
func (c *Client) Must(result *Result, err *AppError) *Result {
if err != nil {
+ l4g.Close()
time.Sleep(time.Second)
panic(err)
}
diff --git a/store/store.go b/store/store.go
index 617ea7f2b..8dbf12b55 100644
--- a/store/store.go
+++ b/store/store.go
@@ -4,7 +4,9 @@
package store
import (
+ l4g "code.google.com/p/log4go"
"github.com/mattermost/platform/model"
+ "time"
)
type StoreResult struct {
@@ -17,6 +19,8 @@ type StoreChannel chan StoreResult
func Must(sc StoreChannel) interface{} {
r := <-sc
if r.Err != nil {
+ l4g.Close()
+ time.Sleep(time.Second)
panic(r.Err)
}