@@ -2,6 +2,7 @@ package datastore
2
2
3
3
import (
4
4
"database/sql"
5
+ "encoding/json"
5
6
"net"
6
7
"net/url"
7
8
"os"
@@ -30,6 +31,47 @@ type Datastore struct {
30
31
Websocket Websocket
31
32
}
32
33
34
+ type Logger struct {
35
+ errLog string
36
+ }
37
+
38
+ func NewLogger () * Logger {
39
+ return & Logger {}
40
+ }
41
+
42
+ func (l * Logger ) Write (b []byte ) (int , error ) {
43
+ l .errLog += string (b ) + "\n "
44
+ return len (b ), nil
45
+ }
46
+
47
+ func (l * Logger ) LogBytes (b []byte ) {
48
+ l .errLog += string (b ) + "\n "
49
+ }
50
+
51
+ func (l * Logger ) LogText (text string ) {
52
+ l .errLog += text
53
+ }
54
+
55
+ func (l * Logger ) LogValue (val interface {}) {
56
+ b , err := json .MarshalIndent (val , "" , " " )
57
+ if err != nil {
58
+ l .LogText ("failed to marshal val" )
59
+ }
60
+ l .LogBytes (b )
61
+ }
62
+
63
+ func (l * Logger ) ResetLog () {
64
+ l .errLog = "" //reset it
65
+ }
66
+
67
+ func (l * Logger ) PrintLog () {
68
+ log .Info (l .errLog )
69
+ }
70
+
71
+ func (l * Logger ) GetLog () string {
72
+ return l .errLog
73
+ }
74
+
33
75
// New - returns a new datastore which contains redis, database, view globals and settings.
34
76
func New () * Datastore {
35
77
store := Simple ()
@@ -49,7 +91,7 @@ func Simple() *Datastore {
49
91
50
92
// - LOGGING
51
93
// Log as JSON instead of the default ASCII formatter.
52
- log .SetFormatter (& log.JSONFormatter {})
94
+ // log.SetFormatter(&log.JSONFormatter{})
53
95
// Output to stderr instead of stdout, could also be a file.
54
96
log .SetOutput (os .Stderr )
55
97
// Only log the warning severity or above.
@@ -199,6 +241,7 @@ type Settings struct {
199
241
EmailFromEmail string
200
242
IsSiteBound bool
201
243
CacheNamespace string
244
+ LoggingEnabled bool
202
245
}
203
246
204
247
func loadSettings () * Settings {
@@ -207,6 +250,7 @@ func loadSettings() *Settings {
207
250
panic (err )
208
251
}
209
252
s := & Settings {}
253
+ s .LoggingEnabled = (os .Getenv ("LOGGING_ENABLED" ) == "true" )
210
254
s .ServerIsDEV = (os .Getenv ("IS_DEV" ) == "true" )
211
255
s .ServerIsLVE = ! s .ServerIsDEV
212
256
if s .ServerIsDEV {
0 commit comments