github.com/Andyfoo/golang/x/sys@v0.0.0-20190901054642-57c1bf301704/windows/svc/debug/log.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build windows 6 7 package debug 8 9 import ( 10 "os" 11 "strconv" 12 ) 13 14 // Log interface allows different log implementations to be used. 15 type Log interface { 16 Close() error 17 Info(eid uint32, msg string) error 18 Warning(eid uint32, msg string) error 19 Error(eid uint32, msg string) error 20 } 21 22 // ConsoleLog provides access to the console. 23 type ConsoleLog struct { 24 Name string 25 } 26 27 // New creates new ConsoleLog. 28 func New(source string) *ConsoleLog { 29 return &ConsoleLog{Name: source} 30 } 31 32 // Close closes console log l. 33 func (l *ConsoleLog) Close() error { 34 return nil 35 } 36 37 func (l *ConsoleLog) report(kind string, eid uint32, msg string) error { 38 s := l.Name + "." + kind + "(" + strconv.Itoa(int(eid)) + "): " + msg + "\n" 39 _, err := os.Stdout.Write([]byte(s)) 40 return err 41 } 42 43 // Info writes an information event msg with event id eid to the console l. 44 func (l *ConsoleLog) Info(eid uint32, msg string) error { 45 return l.report("info", eid, msg) 46 } 47 48 // Warning writes an warning event msg with event id eid to the console l. 49 func (l *ConsoleLog) Warning(eid uint32, msg string) error { 50 return l.report("warn", eid, msg) 51 } 52 53 // Error writes an error event msg with event id eid to the console l. 54 func (l *ConsoleLog) Error(eid uint32, msg string) error { 55 return l.report("error", eid, msg) 56 }