diff options
| author | Marin Ivanov <[email protected]> | 2024-02-05 15:11:07 +0200 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2024-02-05 15:11:07 +0200 |
| commit | 6b7f7ab45b47a5274ee8d914a0bc8f38281ea558 (patch) | |
| tree | 4fe261b9dfac869603ce0e4c4fec80ee6d9bbd5f | |
| parent | f316c889db7337f5ff43d2e876f1229bd3dcee8c (diff) | |
add logging and more error handling
| -rw-r--r-- | main.go | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -9,24 +9,35 @@ import ( flag "github.com/spf13/pflag" ) +func logger(req *http.Request, err error) { + log.Printf("Err: %s, Request: %#v", err, req) +} + func main() { var ( bind string rootDir string + verbose bool ) flag.StringVarP(&bind, "bind", "b", "localhost:8080", "Address to listen to.") - flag.StringVarP(&rootDir, "root", "r", ".", "Address to listen to.") + flag.StringVarP(&rootDir, "root", "r", ".", "Root directory") + flag.BoolVarP(&verbose, "verbose", "v", false, "Verbose") flag.Parse() handler := &webdav.Handler{ FileSystem: webdav.Dir(rootDir), LockSystem: webdav.NewMemLS(), } + if verbose { + handler.Logger = logger + } root, err := filepath.Abs(rootDir) if err != nil { - log.Fatalf("Invalid path '%s': %s", rootDir, err) + log.Fatalf("Error: invalid root directory '%s': %s", rootDir, err) } log.Printf("Starting WebDAV server at '%s' on '%s'...", root, bind) - http.ListenAndServe(bind, handler) + if err = http.ListenAndServe(bind, handler); err != nil { + log.Fatalf("Error: server listen and serve failed: %s", err) + } } |
