app: merge with internal log package to remove the separate log.appID

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2023-12-11 19:01:55 -06:00
parent 0d7f00c634
commit fe1df00d02
5 changed files with 4 additions and 13 deletions
+34
View File
@@ -0,0 +1,34 @@
// SPDX-License-Identifier: Unlicense OR MIT
package app
import (
"log"
"syscall"
"unsafe"
)
type logger struct{}
var (
kernel32 = syscall.NewLazyDLL("kernel32")
outputDebugStringW = kernel32.NewProc("OutputDebugStringW")
debugView *logger
)
func init() {
// Windows DebugView already includes timestamps.
if syscall.Stderr == 0 {
log.SetFlags(log.Flags() &^ log.LstdFlags)
log.SetOutput(debugView)
}
}
func (l *logger) Write(buf []byte) (int, error) {
p, err := syscall.UTF16PtrFromString(string(buf))
if err != nil {
return 0, err
}
outputDebugStringW.Call(uintptr(unsafe.Pointer(p)))
return len(buf), nil
}