mirror of
https://github.com/docker/cli.git
synced 2026-08-24 02:24:17 -05:00
Notable changes: - Add bidirectional `log/slog` integration with a Logrus hook and `slog.Handler`. - Add minimal, composable logging interfaces for individual log levels. - Fix reentrant logging deadlocks and improve concurrency safety around formatters, hooks, and entries. - Fix generic `Log`, `Logf`, `Logln`, and `LogFn` methods unexpectedly panicking at `PanicLevel`. - Allow `Entry.Caller` to be set explicitly and preserved across derived entries. - Improve `TextFormatter` performance and reduce allocations significantly. - Improve common Logger and Entry hot paths and caller-reporting performance. - Update `TextFormatter` handling for `[]byte`, debug/trace colors, and Windows ANSI terminals. - Raise the minimum supported Go version to Go 1.23. - Deprecate `Entry.HasCaller` and `MutexWrap`. release-notes: https://github.com/sirupsen/logrus/releases/tag/v1.10.0 release-notes: https://github.com/sirupsen/logrus/releases/tag/v1.10.1 full diff: https://github.com/sirupsen/logrus/compare/v1.9.4...v1.10.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
28 lines
490 B
Go
28 lines
490 B
Go
//go:build windows && !appengine
|
|
|
|
package logrus
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
|
|
"golang.org/x/sys/windows"
|
|
)
|
|
|
|
func checkIfTerminal(w io.Writer) bool {
|
|
switch v := w.(type) {
|
|
case *os.File:
|
|
handle := windows.Handle(v.Fd())
|
|
var mode uint32
|
|
if err := windows.GetConsoleMode(handle, &mode); err != nil {
|
|
return false
|
|
}
|
|
mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
|
|
if err := windows.SetConsoleMode(handle, mode); err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
return false
|
|
}
|