mirror of
https://github.com/garraflavatra/rolens.git
synced 2024-11-25 12:20:33 +01:00
81 lines
1.5 KiB
Go
81 lines
1.5 KiB
Go
package internal
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/ncruces/zenity"
|
|
)
|
|
|
|
var showError = true
|
|
|
|
type AppLogger struct {
|
|
directory string
|
|
filename string
|
|
filepath string
|
|
}
|
|
|
|
func NewAppLogger(directory, filename string) *AppLogger {
|
|
return &AppLogger{
|
|
directory: directory,
|
|
filename: filename,
|
|
filepath: path.Join(directory, filename),
|
|
}
|
|
}
|
|
|
|
func (l *AppLogger) Print(message string) {
|
|
os.MkdirAll(l.directory, os.ModePerm)
|
|
f, err := os.OpenFile(l.filepath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
|
|
|
if err != nil && showError {
|
|
zenity.Error(err.Error(), zenity.Title("Could not open logfile!"), zenity.ErrorIcon)
|
|
showError = false
|
|
}
|
|
|
|
if _, err = f.WriteString(message); err != nil {
|
|
if showError {
|
|
zenity.Error(err.Error(), zenity.Title("Could not write to logfile!"), zenity.ErrorIcon)
|
|
showError = false
|
|
} else {
|
|
showError = true
|
|
}
|
|
} else {
|
|
showError = true
|
|
}
|
|
|
|
f.Close()
|
|
}
|
|
|
|
func (l *AppLogger) Println(message string) {
|
|
l.Print(message + "\n")
|
|
}
|
|
|
|
func (l *AppLogger) Trace(message string) {
|
|
l.Println("TRACE | " + message)
|
|
}
|
|
|
|
func (l *AppLogger) Debug(message string) {
|
|
if strings.HasPrefix(message, "[ExternalAssetHandler]") {
|
|
return
|
|
}
|
|
l.Println("DEBUG | " + message)
|
|
}
|
|
|
|
func (l *AppLogger) Info(message string) {
|
|
l.Println("INFO | " + message)
|
|
}
|
|
|
|
func (l *AppLogger) Warning(message string) {
|
|
l.Println("WARN | " + message)
|
|
}
|
|
|
|
func (l *AppLogger) Error(message string) {
|
|
l.Println("ERROR | " + message)
|
|
}
|
|
|
|
func (l *AppLogger) Fatal(message string) {
|
|
l.Println("FATAL | " + message)
|
|
os.Exit(1)
|
|
}
|