Only set CanColorStdout / CanColorStderr to true if the stdout/stderr is a terminal (#19581)

This commit is contained in:
wxiaoguang 2022-05-04 00:03:34 +08:00 committed by GitHub
parent 982b726b08
commit 730420b6b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,21 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
//go:build !windows
package log
import (
"os"
"github.com/mattn/go-isatty"
)
func init() {
// when running gitea as a systemd unit with logging set to console, the output can not be colorized,
// otherwise it spams the journal / syslog with escape sequences like "#033[0m#033[32mcmd/web.go:102:#033[32m"
// this file covers non-windows platforms.
CanColorStdout = isatty.IsTerminal(os.Stdout.Fd())
CanColorStderr = isatty.IsTerminal(os.Stderr.Fd())
}