diff --git a/log/log.go b/log/log.go index ddeb098..d22e55f 100644 --- a/log/log.go +++ b/log/log.go @@ -39,8 +39,23 @@ func New(level Level) *Logger { return &Logger{logger: golog.New(os.Stderr, "", golog.Ldate|golog.Ltime), level: level, everythingFromPatterns: make([]string, 0), nothingExceptPatterns: make([]string, 0)} } +// NewFile returns a new Logger that logs to the supplied file with a filter set to the supplied level +func NewFile(level Level, filename string) (*Logger, error) { + logfile, err := os.OpenFile(filename, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0600) + if err != nil { + return nil, err + } + + return &Logger{logger: golog.New(logfile, "", golog.Ldate|golog.Ltime), level: level, everythingFromPatterns: make([]string, 0), nothingExceptPatterns: make([]string, 0)}, nil +} + var std = New(LevelWarn) +// SetStd sets the default logger all other functions use +func SetStd(logger *Logger) { + std = logger +} + // filter func (l *Logger) filter(level Level) bool {