Feat: add disable log color flag

pull/44/head
zijiren233 2 years ago
parent b6ea5a52ca
commit 00ae5b93dc

@ -3,4 +3,5 @@ package flags
var (
DisableUpdateCheck bool
DisableWeb bool
DisableLogColor bool
)

@ -26,8 +26,8 @@ var ServerCmd = &cobra.Command{
boot := bootstrap.New(bootstrap.WithContext(cmd.Context())).Add(
bootstrap.InitSysNotify,
bootstrap.InitConfig,
bootstrap.InitLog,
bootstrap.InitGinMode,
bootstrap.InitLog,
bootstrap.InitDatabase,
bootstrap.InitProvider,
bootstrap.InitOp,
@ -161,4 +161,5 @@ func init() {
RootCmd.AddCommand(ServerCmd)
ServerCmd.PersistentFlags().BoolVar(&flags.DisableUpdateCheck, "disable-update-check", false, "disable update check")
ServerCmd.PersistentFlags().BoolVar(&flags.DisableWeb, "disable-web", false, "disable web")
ServerCmd.PersistentFlags().BoolVar(&flags.DisableLogColor, "disable-log-color", false, "disable log color")
}

@ -145,7 +145,7 @@ func newDBLogger() logger.Interface {
LogLevel: logLevel,
IgnoreRecordNotFoundError: true,
ParameterizedQueries: !flags.Dev && version.Version != "dev",
Colorful: true,
Colorful: utils.ForceColor(),
},
)
}

@ -5,6 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/synctv-org/synctv/cmd/flags"
"github.com/synctv-org/synctv/utils"
)
func InitGinMode(ctx context.Context) error {
@ -13,7 +14,11 @@ func InitGinMode(ctx context.Context) error {
} else {
gin.SetMode(gin.ReleaseMode)
}
if utils.ForceColor() {
gin.ForceConsoleColor()
} else {
gin.DisableConsoleColor()
}
return nil
}

@ -26,6 +26,7 @@ func setLog(l *logrus.Logger) {
func InitLog(ctx context.Context) (err error) {
setLog(logrus.StandardLogger())
forceColor := utils.ForceColor()
if conf.Conf.Log.Enable {
conf.Conf.Log.FilePath, err = utils.OptFilePath(conf.Conf.Log.FilePath)
if err != nil {
@ -57,13 +58,10 @@ func InitLog(ctx context.Context) (err error) {
if conf.Conf.Log.LogFormat != "text" {
logrus.Warnf("unknown log format: %s, use default: text", conf.Conf.Log.LogFormat)
}
if colorable.IsTerminal(os.Stdout.Fd()) {
logrus.SetFormatter(&logrus.TextFormatter{
ForceColors: true,
ForceColors: forceColor,
DisableColors: !forceColor,
})
} else {
logrus.SetFormatter(&logrus.TextFormatter{})
}
}
log.SetOutput(logrus.StandardLogger().Writer())
return nil

@ -16,6 +16,7 @@ import (
"github.com/google/uuid"
"github.com/synctv-org/synctv/cmd/flags"
"github.com/zijiren233/go-colorable"
"github.com/zijiren233/stream"
yamlcomment "github.com/zijiren233/yaml-comment"
"gopkg.in/yaml.v3"
@ -342,3 +343,18 @@ func GetUrlExtension(u string) string {
}
return strings.TrimLeft(filepath.Ext(p.Path), ".")
}
var needColor atomic.Pointer[bool]
func ForceColor() bool {
b := needColor.Load()
if b == nil {
forceColor := colorable.IsTerminal(os.Stdout.Fd())
if flags.DisableLogColor {
forceColor = false
}
needColor.Store(&forceColor)
return forceColor
}
return *b
}

Loading…
Cancel
Save