@@ -2,6 +2,7 @@ package datastore
22
33import (
44 "database/sql"
5+ "encoding/json"
56 "net"
67 "net/url"
78 "os"
@@ -30,6 +31,47 @@ type Datastore struct {
3031 Websocket Websocket
3132}
3233
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+
3375// New - returns a new datastore which contains redis, database, view globals and settings.
3476func New () * Datastore {
3577 store := Simple ()
@@ -49,7 +91,7 @@ func Simple() *Datastore {
4991
5092 // - LOGGING
5193 // Log as JSON instead of the default ASCII formatter.
52- log .SetFormatter (& log.JSONFormatter {})
94+ // log.SetFormatter(&log.JSONFormatter{})
5395 // Output to stderr instead of stdout, could also be a file.
5496 log .SetOutput (os .Stderr )
5597 // Only log the warning severity or above.
@@ -199,6 +241,7 @@ type Settings struct {
199241 EmailFromEmail string
200242 IsSiteBound bool
201243 CacheNamespace string
244+ LoggingEnabled bool
202245}
203246
204247func loadSettings () * Settings {
@@ -207,6 +250,7 @@ func loadSettings() *Settings {
207250 panic (err )
208251 }
209252 s := & Settings {}
253+ s .LoggingEnabled = (os .Getenv ("LOGGING_ENABLED" ) == "true" )
210254 s .ServerIsDEV = (os .Getenv ("IS_DEV" ) == "true" )
211255 s .ServerIsLVE = ! s .ServerIsDEV
212256 if s .ServerIsDEV {
0 commit comments