Skip to content

Instantly share code, notes, and snippets.

@SbstnErhrdt
Created January 28, 2021 11:24
Show Gist options
  • Save SbstnErhrdt/f13797ef12f4825ad18b90cb18619710 to your computer and use it in GitHub Desktop.
Save SbstnErhrdt/f13797ef12f4825ad18b90cb18619710 to your computer and use it in GitHub Desktop.
Global Logger
package globallogger
import (
"log"
"os"
"sync"
)
type logger struct {
filename string
*log.Logger
}
var logger *logger
var once sync.Once
func Get() *logger {
once.Do(func() {
logger = createLogger("mylogger.log")
})
return logger
}
func createLogger(fname string) *logger {
file, _ := os.OpenFile(fname, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
return &logger{
filename: fname,
Logger: log.New(file, "My App Name ", log.Lshortfile),
}
}
package main
import (
"customlogger"
"fmt"
"net/http"
)
func main() {
logger := globallogger.Get()
logger.Println("Starting")
http.HandleFunc("/", sroot)
http.ListenAndServe(":8080", nil)
}
func sroot(w http.ResponseWriter, r *http.Request) {
logger := globallogger.Get()
fmt.Fprintf(w, "welcome")
logger.Println("Starting")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment