Я использую 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
?