Documentation ¶
Overview ¶
Package log is a logging subsystem that provides code optional location tracing and semi-automated subsystem registration and output control.
Index ¶
- Variables
- func Add() (subsystem string)
- func GetAllSubsystems() (o []string)
- func GetLevelName(ll LogLevel) string
- func GetLoc(skip int, subsystem string) (output string)
- func SetLogFilePath(p string) (err error)
- func SetLogLevel(l LogLevel)
- func SetTimeStampFormat(format string)
- func StartLogToFile() (err error)
- func StopLogToFile() (err error)
- type Chk
- type LevelMap
- type LevelPrinter
- type LevelSpec
- type LogLevel
- type Logger
- type Printc
- type Printf
- type Println
- type Prints
Constants ¶
This section is empty.
Variables ¶
var ( // LevelSpecs specifies the id, string name and color-printing function LevelSpecs = map[LogLevel]LevelSpec{ Off: gLS(Off, 0, 0, 0), Fatal: gLS(Fatal, 255, 0, 0), Error: gLS(Error, 255, 128, 0), Check: gLS(Check, 255, 255, 0), Warn: gLS(Warn, 255, 255, 0), Info: gLS(Info, 0, 255, 0), Debug: gLS(Debug, 0, 128, 255), Trace: gLS(Trace, 128, 0, 255), } // LocTimeStampFormat is a custom time format that provides millisecond precision. LocTimeStampFormat = "2006-01-02T15:04:05.000000" // LvlStr is a map that provides the uniform width strings that are printed // to identify the LogLevel of a log entry. LvlStr = LevelMap{ Off: "off", Fatal: "fatal", Error: "error", Warn: "warn", Info: "info", Check: "check", Debug: "debug", Trace: "trace", } // App is the name of the application. Change this at the beginning of // an application main. App atomic.String Longest atomic.Uint32 )
Functions ¶
func Add ¶
func Add() (subsystem string)
Add adds a subsystem to the list of known subsystems and returns the string.
func GetAllSubsystems ¶
func GetAllSubsystems() (o []string)
func GetLevelName ¶
func GetLoc ¶
GetLoc calls runtime.Caller and formats as expected by source code editors for terminal hyperlinks
Regular expressions and the substitution texts to make these clickable in Tilix and other RE hyperlink configurable terminal emulators:
This matches the shortened paths generated in this command and printed at the very beginning of the line as this logger prints:
^((([\/a-zA-Z@0-9-_.]+/)+([a-zA-Z@0-9-_.]+)):([0-9]+)) /usr/local/bin/goland --line $5 $GOPATH/src/github.com/p9c/matrjoska/$2
I have used a shell variable there but tilix doesn't expand them, so put your GOPATH in manually, and obviously change the repo subpath.
func SetLogFilePath ¶
func SetLogLevel ¶
func SetLogLevel(l LogLevel)
func SetTimeStampFormat ¶
func SetTimeStampFormat(format string)
SetTimeStampFormat sets a custom timeStampFormat for the logger
func StartLogToFile ¶
func StartLogToFile() (err error)
func StopLogToFile ¶
func StopLogToFile() (err error)
Types ¶
type LevelPrinter ¶
type LevelPrinter struct { Ln Println // F prints like fmt.Println surrounded by log details F Printf // S uses spew.dump to show the content of a variable S Prints // C accepts a function so that the extra computation can be avoided if // it is not being viewed C Printc // Chk is a shortcut for printing if there is an error, or returning // true Chk Chk }
LevelPrinter defines a set of terminal printing primitives that output with extra data, time, level, and code location
type LogLevel ¶
type LogLevel int32
LogLevel is a code representing a scale of importance and context for log entries.
The LogLevel settings used in proc
func GetLevelByString ¶ added in v0.1.13
func GetLogLevel ¶ added in v0.1.13
func GetLogLevel() (l LogLevel)
type Logger ¶
type Logger struct {
F, E, W, I, D, T LevelPrinter
}
Logger is a set of log printers for the various LogLevel items.
type Printc ¶
type Printc func(closure func() string)
Printc accepts a function so that the extra computation can be avoided if it is not being viewed
type Printf ¶
type Printf func(format string, a ...interface{})
Printf prints like fmt.Println surrounded by log details