mirror of
https://github.com/anchore/syft
synced 2024-11-10 14:24:12 +00:00
33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/mitchellh/go-homedir"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// logging contains all logging-related configuration options available to the user via the application config.
|
|
type logging struct {
|
|
Structured bool `yaml:"structured" json:"structured" mapstructure:"structured"` // show all log entries as JSON formatted strings
|
|
LevelOpt logrus.Level `yaml:"-" json:"-"` // the native log level object used by the logger
|
|
Level string `yaml:"level" json:"level" mapstructure:"level"` // the log level string hint
|
|
FileLocation string `yaml:"file" json:"file-location" mapstructure:"file"` // the file path to write logs to
|
|
}
|
|
|
|
func (cfg *logging) parseConfigValues() error {
|
|
if cfg.FileLocation != "" {
|
|
expandedPath, err := homedir.Expand(cfg.FileLocation)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to expand log file path=%q: %w", cfg.FileLocation, err)
|
|
}
|
|
cfg.FileLocation = expandedPath
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (cfg logging) loadDefaultValues(v *viper.Viper) {
|
|
v.SetDefault("log.structured", false)
|
|
v.SetDefault("log.file", "")
|
|
}
|