mirror of
https://github.com/Xevion/banner.git
synced 2025-12-10 12:06:34 -06:00
Remove colorizer hook, simplify logSplitter
This commit is contained in:
32
logs.go
32
logs.go
@@ -1,7 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
@@ -10,38 +10,26 @@ import (
|
|||||||
const timeFormat = "2006-01-02 15:04:05"
|
const timeFormat = "2006-01-02 15:04:05"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
standardOut = zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: timeFormat}
|
stdConsole = zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: timeFormat}
|
||||||
errorOut = zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: timeFormat}
|
errConsole = zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: timeFormat}
|
||||||
buffer = new(bytes.Buffer)
|
|
||||||
bufferOut = zerolog.ConsoleWriter{Out: buffer, TimeFormat: ""}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// logSplitter implements zerolog.LevelWriter
|
// logSplitter implements zerolog.LevelWriter
|
||||||
type logSplitter struct{}
|
type logSplitter struct {
|
||||||
|
std io.Writer
|
||||||
|
err io.Writer
|
||||||
|
}
|
||||||
|
|
||||||
// Write should not be called
|
// Write should not be called
|
||||||
func (l logSplitter) Write(p []byte) (n int, err error) {
|
func (l logSplitter) Write(p []byte) (n int, err error) {
|
||||||
return os.Stdout.Write(p)
|
return l.std.Write(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// WriteLevel write to the appropriate output
|
// WriteLevel write to the appropriate output
|
||||||
func (l logSplitter) WriteLevel(level zerolog.Level, p []byte) (n int, err error) {
|
func (l logSplitter) WriteLevel(level zerolog.Level, p []byte) (n int, err error) {
|
||||||
if level <= zerolog.WarnLevel {
|
if level <= zerolog.WarnLevel {
|
||||||
return standardOut.Write(p)
|
return l.std.Write(p)
|
||||||
} else {
|
} else {
|
||||||
return errorOut.Write(p)
|
return l.err.Write(p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// JsonColorizerHook implements zerolog.Hook
|
|
||||||
// This hook is used to reformat the output of the JSON 'message' field to be like ConsoleWriter, but embedded within JSON
|
|
||||||
type JsonColorizerHook struct{}
|
|
||||||
|
|
||||||
func (h JsonColorizerHook) Run(e *zerolog.Event, level zerolog.Level, msg string) {
|
|
||||||
buffer.Reset()
|
|
||||||
bufferOut.Write([]byte(msg))
|
|
||||||
formattedMessage := buffer.String()
|
|
||||||
|
|
||||||
e.Str("text", msg) // Add the original message to the event
|
|
||||||
e.Str("message", formattedMessage)
|
|
||||||
}
|
|
||||||
|
|||||||
9
main.go
9
main.go
@@ -2,12 +2,10 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/cookiejar"
|
"net/http/cookiejar"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"strconv"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
_ "time/tzdata"
|
_ "time/tzdata"
|
||||||
@@ -60,12 +58,11 @@ func init() {
|
|||||||
// Use the custom console writer if we're in development
|
// Use the custom console writer if we're in development
|
||||||
isDevelopment = environment == "development"
|
isDevelopment = environment == "development"
|
||||||
if isDevelopment {
|
if isDevelopment {
|
||||||
log.Logger = zerolog.New(logSplitter{}).With().Timestamp().Logger()
|
log.Logger = zerolog.New(logSplitter{std: stdConsole, err: errConsole}).With().Timestamp().Logger()
|
||||||
} else {
|
} else {
|
||||||
hooked := log.Hook(JsonColorizerHook{})
|
log.Logger = zerolog.New(logSplitter{std: os.Stdout, err: os.Stderr}).With().Timestamp().Logger()
|
||||||
log.Logger = zerolog.New(hooked).With().Timestamp().Logger()
|
|
||||||
log.Debug().Str("environment", environment).Msg("Environment Loaded")
|
|
||||||
}
|
}
|
||||||
|
log.Debug().Str("environment", environment).Msg("Loggers Setup")
|
||||||
|
|
||||||
// Set discordgo's logger to use zerolog
|
// Set discordgo's logger to use zerolog
|
||||||
discordgo.Logger = DiscordGoLogger
|
discordgo.Logger = DiscordGoLogger
|
||||||
|
|||||||
Reference in New Issue
Block a user