github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/pkg/logger/filelogger.go (about) 1 package logger 2 3 import ( 4 "log" 5 "os" 6 ) 7 8 // FileLogger is a utility to log messages to a number of destinations 9 type FileLogger struct { 10 filename string 11 } 12 13 // NewFileLogger creates a new Logger. 14 func NewFileLogger(filename string) Logger { 15 return &FileLogger{ 16 filename: filename, 17 } 18 } 19 20 // Print works like Sprintf. 21 func (l *FileLogger) Print(message string) { 22 f, err := os.OpenFile(l.filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) 23 if err != nil { 24 log.Fatal(err) 25 } 26 if _, err := f.WriteString(message); err != nil { 27 f.Close() 28 log.Fatal(err) 29 } 30 f.Close() 31 } 32 33 func (l *FileLogger) Println(message string) { 34 l.Print(message + "\n") 35 } 36 37 // Trace level logging. Works like Sprintf. 38 func (l *FileLogger) Trace(message string) { 39 l.Println("TRACE | " + message) 40 } 41 42 // Debug level logging. Works like Sprintf. 43 func (l *FileLogger) Debug(message string) { 44 l.Println("DEBUG | " + message) 45 } 46 47 // Info level logging. Works like Sprintf. 48 func (l *FileLogger) Info(message string) { 49 l.Println("INFO | " + message) 50 } 51 52 // Warning level logging. Works like Sprintf. 53 func (l *FileLogger) Warning(message string) { 54 l.Println("WARN | " + message) 55 } 56 57 // Error level logging. Works like Sprintf. 58 func (l *FileLogger) Error(message string) { 59 l.Println("ERROR | " + message) 60 } 61 62 // Fatal level logging. Works like Sprintf. 63 func (l *FileLogger) Fatal(message string) { 64 l.Println("FATAL | " + message) 65 os.Exit(1) 66 }