diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-06-20 15:20:18 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-06-20 15:20:18 +0200 |
| commit | 2252135fadb8c579ad27345e3203be755130e3cd (patch) | |
| tree | ed5a530e85b43736fc0bc28c927cfa8488f9199b /internal/log | |
| parent | 7af07c596166bf93b79a9d0816b1950dde360fb9 (diff) | |
Refactor: Errors to have one custom type that is to be wrapped
- For this an `internal/types` package is created with a custom error type
- This custom error type can give back the cause and traceback of an error
Diffstat (limited to 'internal/log')
| -rw-r--r-- | internal/log/log.go | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/internal/log/log.go b/internal/log/log.go index cba3364..f4024e2 100644 --- a/internal/log/log.go +++ b/internal/log/log.go @@ -5,6 +5,8 @@ import ( "log" "os" "path" + + "github.com/jwijenbergh/eduvpn-common/internal/types" "github.com/jwijenbergh/eduvpn-common/internal/util" ) @@ -38,13 +40,15 @@ func (e LogLevel) String() string { } func (logger *FileLogger) Init(level LogLevel, name string, directory string) error { + errorMessage := "failed creating log" + configDirErr := util.EnsureDirectory(directory) if configDirErr != nil { - return &LogInitializeError{Name: name, Directory: directory, Err: configDirErr} + return &types.WrappedErrorMessage{Message: errorMessage, Err: configDirErr} } logFile, logOpenErr := os.OpenFile(logger.getFilename(directory, name), os.O_RDWR|os.O_CREATE|os.O_APPEND, 0o666) if logOpenErr != nil { - return &LogInitializeError{Name: name, Directory: directory, Err: logOpenErr} + return &types.WrappedErrorMessage{Message: errorMessage, Err: logOpenErr} } log.SetOutput(logFile) logger.File = logFile @@ -66,13 +70,3 @@ func (logger *FileLogger) Log(level LogLevel, str string) { func (logger *FileLogger) Close() { logger.File.Close() } - -type LogInitializeError struct { - Name string - Directory string - Err error -} - -func (e *LogInitializeError) Error() string { - return fmt.Sprintf("failed initializing logging with name: %s and directory: %s with error: %v", e.Name, e.Directory, e.Err) -} |
