add cli for debug

This commit is contained in:
pakintada@gmail.com 2023-09-24 18:21:11 +07:00
parent 05fb58e438
commit 899b888d82
5 changed files with 61 additions and 36 deletions

1
server/.gitignore vendored
View file

@ -1,3 +1,4 @@
/cofffeemachineConfig
services\logger\serverlog.log
client_secret.json
app.env

View file

@ -14,6 +14,7 @@ import (
"recipe-manager/data"
"recipe-manager/models"
"recipe-manager/routers"
"recipe-manager/services/cli"
"recipe-manager/services/logger"
"recipe-manager/services/oauth"
"strings"
@ -84,6 +85,8 @@ func (s *Server) Run() error {
logger.EnableDebug(s.cfg.Debug)
}
go cli.CommandLineListener()
s.createHandler()
// log.Printf("Server running on %s", s.server.Addr)
Log.Info("Server running", zap.String("addr", s.server.Addr))
@ -373,31 +376,6 @@ func (s *Server) createHandler() {
Log.Debug("Scan dir completed < ", zap.String("path", r.RequestURI))
})
// dl merged json file
// r.Get("/dlmerged", func(w http.ResponseWriter, r *http.Request) {
// })
r.Get("/mergefileList", func(w http.ResponseWriter, r *http.Request) {
merge_dir, err := os.ReadDir("cofffeemachineConfig/merge")
if err != nil {
Log.Error("Error while trying to read dir: ", zap.String("dir", "cofffeemachineConfig/merge"), zap.Error(err))
http.Error(w, err.Error(), http.StatusInternalServerError)
}
displayable := make([]string, 0)
for _, file := range merge_dir {
if strings.Contains(file.Name(), ".json") {
displayable = append(displayable, file.Name()[:len(file.Name())-len(filepath.Ext(file.Name()))])
}
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(map[string][]string{"dirs": displayable})
})
// Recipe Router
rr := routers.NewRecipeRouter(database)
rr.Route(r)

View file

@ -0,0 +1,44 @@
package cli
import (
"bufio"
"os"
"recipe-manager/services/logger"
"strings"
"go.uber.org/zap"
)
var (
log_inst = logger.GetInstance()
disable_cli = false
debug = logger.GetDbgState()
)
func CommandLineListener() {
debug = logger.GetDbgState()
reader := bufio.NewReader(os.Stdin)
for !disable_cli {
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
switch input {
case "debug":
logger.EnableDebug(!logger.GetDbgState())
debug = logger.GetDbgState()
// log_inst.Info("Debug mode enable from cli", zap.Bool("enable", logger.GetDbgState()))
case "ctl":
if debug {
log_inst.Debug("CMD > ", zap.String("CMD", input))
}
default:
if debug {
// log_inst.Debug("CMD > ", zap.String("CMD", input))
// Add functions here!
} else {
log_inst.Error("INVALID CMD or CMD DISABLED", zap.String("CMD", input))
}
}
}
}

View file

@ -22,11 +22,14 @@ var (
LocalTime: true,
})
json_enc = zapcore.NewJSONEncoder(zapcore.EncoderConfig{
TimeKey: "timestamp",
LevelKey: "level",
NameKey: "logger",
EncodeLevel: zapcore.LowercaseLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
TimeKey: "timestamp",
LevelKey: "level",
NameKey: "logger",
CallerKey: "caller",
MessageKey: "message",
StacktraceKey: "error",
EncodeLevel: zapcore.LowercaseLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
})
console_enc = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
TimeKey: "timestamp",
@ -66,4 +69,9 @@ func GetInstance() *zap.Logger {
func EnableDebug(state bool) {
enable_debug = state
log_inst.Debug("EnableDebug", zap.Bool("enable", state))
}
func GetDbgState() bool {
return enable_debug
}

View file

@ -1,6 +0,0 @@
{"level":"info","timestamp":"2023-09-22T10:58:35.135+0700","addr":":8080"}
{"level":"info","timestamp":"2023-09-22T10:58:47.594+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T10:59:55.661+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T10:59:59.995+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T11:00:00.056+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T11:00:07.558+0700","user":"pakin tadatanasakul"}