Fix logging to use ISO standard date
parent
96a0f0e83c
commit
c13ba6359e
|
@ -30,10 +30,5 @@ func Configure(filename string) (gosimpleconf.ConfigMap, error) {
|
|||
flagMap := gosimpleconf.SetupFlagOverrides(configMap)
|
||||
configMap = gosimpleconf.ParseFlags(configMap, flagMap)
|
||||
|
||||
err = SetupLogging(configMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return configMap, nil
|
||||
}
|
||||
|
|
|
@ -1,31 +1,43 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"gitea.wisellama.rocks/Wisellama/gosimpleconf"
|
||||
"time"
|
||||
)
|
||||
|
||||
func SetupLogging(configMap gosimpleconf.ConfigMap) error {
|
||||
writeToFile := gosimpleconf.Bool(configMap["log.writeToFile"])
|
||||
type logWriter struct {
|
||||
writeToFile bool
|
||||
logFile *os.File
|
||||
}
|
||||
|
||||
func (w *logWriter) Write(bytes []byte) (int, error) {
|
||||
t := time.Now().UTC().Format(time.RFC3339)
|
||||
return fmt.Fprintf(w.logFile, "%v %v", t, string(bytes))
|
||||
}
|
||||
|
||||
func (w *logWriter) Cleanup() {
|
||||
defer w.logFile.Close()
|
||||
}
|
||||
|
||||
func SetupLogging(writeToFile bool, logFilename string) (*logWriter, error) {
|
||||
var err error
|
||||
log.SetFlags(0)
|
||||
|
||||
logFile := os.Stdout
|
||||
if writeToFile {
|
||||
logFile := configMap["log.file"]
|
||||
filename, err := filepath.Abs(logFile)
|
||||
logFile, err = os.OpenFile(logFilename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.SetOutput(file)
|
||||
}
|
||||
|
||||
log.Printf("=== START %v ===", configMap["game.title"])
|
||||
return nil
|
||||
writer := &logWriter{
|
||||
writeToFile: writeToFile,
|
||||
logFile: logFile,
|
||||
}
|
||||
log.SetOutput(writer)
|
||||
|
||||
return writer, nil
|
||||
}
|
||||
|
|
19
main.go
19
main.go
|
@ -3,7 +3,6 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"gitea.wisellama.rocks/Project-Ely/project-ely/config"
|
||||
|
@ -13,15 +12,27 @@ import (
|
|||
|
||||
func main() {
|
||||
var err error
|
||||
|
||||
// Read configuration
|
||||
configMap, err := config.Configure("game.conf")
|
||||
if err != nil {
|
||||
log.Printf("error during configure: %v\n", err)
|
||||
os.Exit(1)
|
||||
log.Fatalf("error during configure: %v\n", err)
|
||||
}
|
||||
|
||||
// Setup logging
|
||||
writeToFile := gosimpleconf.Bool(configMap["log.writeToFile"])
|
||||
logFilename := configMap["log.file"]
|
||||
logWriter, err := config.SetupLogging(writeToFile, logFilename)
|
||||
if err != nil {
|
||||
log.Fatalf("error setting up logging: %v\n", err)
|
||||
}
|
||||
defer logWriter.Cleanup()
|
||||
|
||||
// Start everything
|
||||
log.Printf("=== Starting %v", configMap["game.title"])
|
||||
err = run(configMap)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatalf("error running: %v\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue