aboutsummaryrefslogtreecommitdiff
path: root/pkg/utils/logging.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/utils/logging.go')
-rw-r--r--pkg/utils/logging.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/pkg/utils/logging.go b/pkg/utils/logging.go
new file mode 100644
index 0000000..d98e78a
--- /dev/null
+++ b/pkg/utils/logging.go
@@ -0,0 +1,55 @@
+package utils
+
+import (
+ "fmt"
+ "io/ioutil"
+ "log"
+ "os"
+ "strconv"
+ "strings"
+)
+
+/*
+ * Brown University, CS1951L, Summer 2021
+ * Designed by: Colby Anderson, John Roy
+ */
+
+// Debug is optional logger for debugging
+var Debug *log.Logger
+
+// Out is logger to Stdout
+var Out *log.Logger
+
+// Err is logger to Stderr
+var Err *log.Logger
+
+// init initializes the loggers.
+func init() {
+ Debug = log.New(ioutil.Discard, "DEBUG: ", 0)
+ Out = log.New(os.Stdout, "INFO: ", log.Ltime|log.Lshortfile)
+ Err = log.New(os.Stderr, "ERROR: ", log.Ltime|log.Lshortfile)
+}
+
+// SetDebug turns debug print statements on or off.
+func SetDebug(enabled bool) {
+ if enabled {
+ Debug.SetOutput(os.Stdout)
+ } else {
+ Debug.SetOutput(ioutil.Discard)
+ }
+}
+
+func FmtAddr(addr string) string {
+ if addr == "" {
+ return ""
+ }
+ colors := []string{"\033[41m", "\033[42m", "\033[43m", "\033[44m", "\033[45m", "\033[46m", "\033[47m"}
+ port, _ := strconv.ParseInt(strings.Split(addr, ":")[1], 10, 64)
+ randomColor := colors[int(port)%len(colors)]
+ return fmt.Sprintf("%v\033[97m[%v]\033[0m", randomColor, addr)
+}
+
+func Colorize(s string, seed int) string {
+ lowestColor, highestColor := 104, 226
+ return fmt.Sprintf("\033[38;5;%vm%v\033[0m", seed%(highestColor-lowestColor)+lowestColor, s)
+}