http: Log server errors

This commit is contained in:
Martin Polden 2020-12-09 21:08:06 +01:00
parent 0d3594284e
commit a4808f1fa4
2 changed files with 9 additions and 1 deletions

View File

@ -29,6 +29,11 @@ func (f *multiValueFlag) Set(v string) error {
return nil return nil
} }
func init() {
log.SetPrefix("echoip: ")
log.SetFlags(log.Lshortfile)
}
func main() { func main() {
countryFile := flag.String("f", "", "Path to GeoIP country database") countryFile := flag.String("f", "", "Path to GeoIP country database")
cityFile := flag.String("c", "", "Path to GeoIP city database") cityFile := flag.String("c", "", "Path to GeoIP city database")
@ -47,7 +52,6 @@ func main() {
return return
} }
log := log.New(os.Stderr, "echoip: ", 0)
r, err := geo.Open(*countryFile, *cityFile, *asnFile) r, err := geo.Open(*countryFile, *cityFile, *asnFile)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)

View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"html/template" "html/template"
"io/ioutil" "io/ioutil"
"log"
"path/filepath" "path/filepath"
"strings" "strings"
@ -383,6 +384,9 @@ func wrapHandlerFunc(f http.HandlerFunc) appHandler {
func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if e := fn(w, r); e != nil { // e is *appError if e := fn(w, r); e != nil { // e is *appError
// When Content-Type for error is JSON, we need to marshal the response into JSON // When Content-Type for error is JSON, we need to marshal the response into JSON
if e.Code/100 == 5 {
log.Println(e.Error)
}
if e.IsJSON() { if e.IsJSON() {
var data = struct { var data = struct {
Error string `json:"error"` Error string `json:"error"`