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)
|
flagMap := gosimpleconf.SetupFlagOverrides(configMap)
|
||||||
configMap = gosimpleconf.ParseFlags(configMap, flagMap)
|
configMap = gosimpleconf.ParseFlags(configMap, flagMap)
|
||||||
|
|
||||||
err = SetupLogging(configMap)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return configMap, nil
|
return configMap, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,43 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"time"
|
||||||
|
|
||||||
"gitea.wisellama.rocks/Wisellama/gosimpleconf"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func SetupLogging(configMap gosimpleconf.ConfigMap) error {
|
type logWriter struct {
|
||||||
writeToFile := gosimpleconf.Bool(configMap["log.writeToFile"])
|
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 {
|
if writeToFile {
|
||||||
logFile := configMap["log.file"]
|
logFile, err = os.OpenFile(logFilename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||||
filename, err := filepath.Abs(logFile)
|
|
||||||
if err != nil {
|
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"])
|
writer := &logWriter{
|
||||||
return nil
|
writeToFile: writeToFile,
|
||||||
|
logFile: logFile,
|
||||||
|
}
|
||||||
|
log.SetOutput(writer)
|
||||||
|
|
||||||
|
return writer, nil
|
||||||
}
|
}
|
||||||
|
|
19
main.go
19
main.go
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"gitea.wisellama.rocks/Project-Ely/project-ely/config"
|
"gitea.wisellama.rocks/Project-Ely/project-ely/config"
|
||||||
|
@ -13,15 +12,27 @@ import (
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
// Read configuration
|
||||||
configMap, err := config.Configure("game.conf")
|
configMap, err := config.Configure("game.conf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("error during configure: %v\n", err)
|
log.Fatalf("error during configure: %v\n", err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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)
|
err = run(configMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatalf("error running: %v\n", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue