Изменить путь файла для вывода уровня logrus в файл - PullRequest
0 голосов
/ 31 марта 2020

Я использую Logrus с lfshook для сохранения вывода журнала в файл. Я могу установить спецификацию c path for each output level.
Проблема в том, что мне нужно изменить этот путь во время выполнения, и я не могу этого сделать.

Мой код работает прямо сейчас:

pathMap := MakePath(
   fileLevel,
   absolutePath,
   logPath,
)

log.Hooks.Add(lfshook.NewHook(
   pathMap,
   &logrus.TextFormatter{
      TimestampFormat:        config.Logging.TimestampFormat,
      DisableTimestamp:       !config.Logging.Timestamps,
      DisableLevelTruncation: config.Logging.DisableLevelTruncation,
      FullTimestamp:          true,
      DisableColors:          true,
   },
))

------------------------------------
func MakePath(minLevel logrus.Level, fpath, logPath string) lfshook.PathMap {
    pm := lfshook.PathMap{}

    for _, lvl := range logrus.AllLevels {
        if lvl <= minLevel {
            pm[lvl] = fpath
        }
        pm[logrus.WarnLevel] = logPath + "/logs/teste.log" //Here I create a custom path for WARNING level.
    }

    return pm
}

Как я могу изменить путь для определенного уровня c на different file?

...