Rich Enhanced Shell History - Contextual shell history for zsh and bash
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
resh/internal/logger/logger.go

28 lines
808 B

package logger
import (
"fmt"
"os"
"path/filepath"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
func New(executable string, level zapcore.Level, developement bool) (*zap.Logger, error) {
// TODO: consider getting log path from config ?
homeDir, err := os.UserHomeDir()
if err != nil {
return nil, fmt.Errorf("error while getting home dir: %w", err)
}
logPath := filepath.Join(homeDir, ".resh/log.json")
loggerConfig := zap.NewProductionConfig()
loggerConfig.OutputPaths = []string{logPath}
loggerConfig.Level.SetLevel(level)
loggerConfig.Development = developement // DPanic panics in developement
logger, err := loggerConfig.Build()
if err != nil {
return logger, fmt.Errorf("error while creating logger: %w", err)
}
return logger.With(zap.String("executable", executable)), err
}