Skip to content

Commit 9e750b4

Browse files
feat: add debugging flags
1 parent 98af7e2 commit 9e750b4

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

poketerm/global/global.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package global
22

33
import (
44
"encoding/json"
5+
"flag"
56
"fmt"
67
"io/fs"
78
"math/rand/v2"
@@ -52,6 +53,8 @@ var (
5253
LocalPlayerName: "Player",
5354
}
5455

56+
colorEnabled = false
57+
5558
GameTicksPerSecond = 20
5659

5760
// Global RNG for unimportant or non-networked RNG
@@ -67,6 +70,13 @@ func GlobalInit(files fs.FS, shouldLog bool) {
6770
configDir := DefaultConfigDir()
6871
configFilepath := DefaultConfigLocation()
6972

73+
debugFlag := flag.Bool("debug", false, "Turns on debug mode")
74+
colorFlag := flag.Bool("color", false, "Turns on color output for logging. Should only be used for terminal tools like cat and tail.")
75+
76+
flag.Parse()
77+
78+
colorEnabled = *colorFlag
79+
7080
// Basic logging for config debugging
7181
initLogger = zerolog.New(zerolog.ConsoleWriter{Out: os.Stdout}).With().Timestamp().Logger()
7282

@@ -106,8 +116,10 @@ func GlobalInit(files fs.FS, shouldLog bool) {
106116
Opt = config
107117
}
108118

119+
enableDebug := *debugFlag || Opt.Debug
120+
109121
level := zerolog.InfoLevel
110-
if Opt.Debug {
122+
if enableDebug {
111123
level = zerolog.DebugLevel
112124
}
113125

@@ -120,7 +132,9 @@ func GlobalInit(files fs.FS, shouldLog bool) {
120132

121133
// Main global logger
122134
log.Logger = createLogger(configDir, level)
123-
golurk.SetInternalLogger(zerologr.New(&log.Logger))
135+
if enableDebug {
136+
golurk.SetInternalLogger(zerologr.New(&log.Logger))
137+
}
124138

125139
errs := golurk.DefaultLoader(files)
126140
if len(errs) > 0 {
@@ -169,8 +183,8 @@ func populateConfig(config GlobalConfig) GlobalConfig {
169183

170184
func createFileWriter(configDir string) zerolog.ConsoleWriter {
171185
rollingWriter := NewRollingFileWriter(filepath.Join(configDir, "logs/"), "gokemon")
172-
// TODO: Make custom formatter. ConsoleWriter ends up printing out console format codes (obviously) that look bad in a text editor
173-
return zerolog.ConsoleWriter{Out: rollingWriter}
186+
// TODO: Add toggle flag for color output
187+
return zerolog.ConsoleWriter{Out: rollingWriter, NoColor: !colorEnabled}
174188
}
175189

176190
func createLogger(configDir string, level zerolog.Level) zerolog.Logger {

0 commit comments

Comments
 (0)