Как отключить колоризацию лога при выводе в файл?

Код делает колоризованный вывод в stdout (на windows через ansicolor) и часть данных, в соответствии с указанными loglevel, отправляет также в файл. Но в файл попадают и все ansi коды колоризации. Хотелось бы как-то от них избавиться...

import (
    "github.com/shiena/ansicolor"
    log "github.com/sirupsen/logrus"
    logwr "github.com/sirupsen/logrus/hooks/writer"
)

func SetLogger(logLevel log.Level) {
    /* конфигурация логгера  */

    log.SetFormatter(&log.TextFormatter{
        ForceColors:     true,
        FullTimestamp:   true,
        TimestampFormat: "01/02 15:04:05",
    })

    log.SetOutput(ansicolor.NewAnsiColorWriter(os.Stdout))
    log.SetLevel(logLevel) 
   
}

func SetHookLogger(logWriter *os.File) {
    /* добавляем хук для записи в файл*/

    log.AddHook(&logwr.Hook{
        Writer: logWriter,
        LogLevels: []log.Level{
            log.PanicLevel,
            log.FatalLevel,
            log.ErrorLevel,
            log.WarnLevel,
            log.InfoLevel,
        },
    })
}

Ответы (1 шт):

Автор решения: Garry Galler

Нашел выход в использовании библиотеки go-colorable, которая также добавляет колоризацию вывода в windows (своим путем) и в которой есть обертка для удаления колоризации NewNonColorable(writer):

import "github.com/mattn/go-colorable"

func SetHookLogger(logWriter *os.File) {
    /* добавляем хук для записи в файл*/

    log.AddHook(&logwr.Hook{
        Writer: colorable.NewNonColorable(logWriter),
        LogLevels: []log.Level{
            log.PanicLevel,
            log.FatalLevel,
            log.ErrorLevel,
            log.WarnLevel,
            log.InfoLevel,
        },
    })
}
→ Ссылка