Setup proper logging
This commit is contained in:
		@@ -6,9 +6,9 @@ import (
 | 
			
		||||
	"after-lock/xdg/keypressdetector"
 | 
			
		||||
	"after-lock/xdg/lockscreen"
 | 
			
		||||
	"after-lock/lockfile"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"runtime/debug"
 | 
			
		||||
	"log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -17,11 +17,16 @@ const (
 | 
			
		||||
	keyboardDeviceNode = "/dev/input/by-id/usb-Dell_Dell_USB_Entry_Keyboard-event-kbd"
 | 
			
		||||
	lockfilePath = "/tmp/after-lock.lock"
 | 
			
		||||
	printStackTraces = false
 | 
			
		||||
	logFilePath = "/home/superuser/Desktop/after-lock.log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	defer handleErrors()
 | 
			
		||||
	f := initLogging()
 | 
			
		||||
	if f != nil {
 | 
			
		||||
		defer f.Close()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	lock := grabExclusiveProcessLock()
 | 
			
		||||
	defer lock.Unlock()
 | 
			
		||||
@@ -36,11 +41,25 @@ func main() {
 | 
			
		||||
	al.Start()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func initLogging() *os.File {
 | 
			
		||||
	if len(logFilePath) == 0 {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	f, err := os.OpenFile(logFilePath, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0600)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.SetOutput(f)
 | 
			
		||||
	return f
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func handleErrors() {
 | 
			
		||||
	if err := recover(); err != nil {
 | 
			
		||||
		fmt.Printf("Crashed with unexpected error: %v!\n", err)
 | 
			
		||||
		log.Printf("Crashed with unexpected error: %v!\n", err)
 | 
			
		||||
		if printStackTraces {
 | 
			
		||||
			fmt.Printf("Stack trace:\n\n")
 | 
			
		||||
			log.Printf("Stack trace:\n\n")
 | 
			
		||||
			debug.PrintStack()
 | 
			
		||||
		}
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user