57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package logging
|
|
|
|
import (
|
|
`os`
|
|
`path/filepath`
|
|
`regexp`
|
|
|
|
`r00t2.io/goutils/bitmask`
|
|
)
|
|
|
|
// Flags for logger configuration. These are used internally.
|
|
const (
|
|
// LogUndefined indicates an undefined Logger type.
|
|
LogUndefined bitmask.MaskBit = 1 << iota
|
|
// LogWinLogger indicates a WinLogger Logger type (Event Log).
|
|
LogWinLogger
|
|
// LogFile flags a FileLogger Logger type.
|
|
LogFile
|
|
// LogStdout flags a StdLogger Logger type.
|
|
LogStdout
|
|
)
|
|
|
|
var (
|
|
// defLogPaths indicates default log paths.
|
|
defLogPaths = []string{
|
|
filepath.Join(os.Getenv("ALLUSERSPROFILE"), "golang", "program.log"), // C:\ProgramData\log\golang\program.log
|
|
filepath.Join(os.Getenv("LOCALAPPDATA"), "log", "golang", "program.log"), // C:\Users\<username>\AppData\Local\log\golang\program.log
|
|
}
|
|
)
|
|
|
|
// ptrnSourceExists is a regex pattern to check for a registry entry (Event Log entry) already existing.
|
|
var ptrnSourceExists *regexp.Regexp = regexp.MustCompile(`registry\skey\salready\sexists$`)
|
|
|
|
// Default WinEventID, (can be) used in GetLogger and MultiLogger.AddWinLogger.
|
|
var DefaultEventID *WinEventID = &WinEventID{
|
|
Alert: EventAlert,
|
|
Crit: EventCrit,
|
|
Debug: EventDebug,
|
|
Emerg: EventEmerg,
|
|
Err: EventErr,
|
|
Info: EventInfo,
|
|
Notice: EventNotice,
|
|
Warning: EventWarning,
|
|
}
|
|
|
|
// Default Event IDs for WinEventID.
|
|
const (
|
|
EventAlert uint32 = 1 << iota
|
|
EventCrit
|
|
EventDebug
|
|
EventEmerg
|
|
EventErr
|
|
EventInfo
|
|
EventNotice
|
|
EventWarning
|
|
)
|