log
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package log implements a simple logging package. It defines a type,Logger,with methods for formatting output. It also has a predefined 'standard'Logger accessible through helper functions Print[f|ln], Fatal[f|ln], andPanic[f|ln], which are easier to use than creating a Logger manually.That logger writes to standard error and prints the date and timeof each logged message.Every log message is output on a separate line: if the message beingprinted does not end in a newline, the logger will add one.The Fatal functions callos.Exit(1) after writing the log message.The Panic functions call panic after writing the log message.
Index¶
- Constants
- func Fatal(v ...any)
- func Fatalf(format string, v ...any)
- func Fatalln(v ...any)
- func Flags() int
- func Output(calldepth int, s string) error
- func Panic(v ...any)
- func Panicf(format string, v ...any)
- func Panicln(v ...any)
- func Prefix() string
- func Print(v ...any)
- func Printf(format string, v ...any)
- func Println(v ...any)
- func SetFlags(flag int)
- func SetOutput(w io.Writer)
- func SetPrefix(prefix string)
- func Writer() io.Writer
- type Logger
- func (l *Logger) Fatal(v ...any)
- func (l *Logger) Fatalf(format string, v ...any)
- func (l *Logger) Fatalln(v ...any)
- func (l *Logger) Flags() int
- func (l *Logger) Output(calldepth int, s string) error
- func (l *Logger) Panic(v ...any)
- func (l *Logger) Panicf(format string, v ...any)
- func (l *Logger) Panicln(v ...any)
- func (l *Logger) Prefix() string
- func (l *Logger) Print(v ...any)
- func (l *Logger) Printf(format string, v ...any)
- func (l *Logger) Println(v ...any)
- func (l *Logger) SetFlags(flag int)
- func (l *Logger) SetOutput(w io.Writer)
- func (l *Logger) SetPrefix(prefix string)
- func (l *Logger) Writer() io.Writer
Examples¶
Constants¶
const (Ldate = 1 <<iota// the date in the local time zone: 2009/01/23Ltime// the time in the local time zone: 01:23:23Lmicroseconds// microsecond resolution: 01:23:23.123123. assumes Ltime.Llongfile// full file name and line number: /a/b/c/d.go:23Lshortfile// final file name element and line number: d.go:23. overrides LlongfileLUTC// if Ldate or Ltime is set, use UTC rather than the local time zoneLmsgprefix// move the "prefix" from the beginning of the line to before the messageLstdFlags =Ldate |Ltime// initial values for the standard logger)
These flags define which text to prefix to each log entry generated by theLogger.Bits are or'ed together to control what's printed.With the exception of the Lmsgprefix flag, there is nocontrol over the order they appear (the order listed here)or the format they present (as described in the comments).The prefix is followed by a colon only when Llongfile or Lshortfileis specified.For example, flags Ldate | Ltime (or LstdFlags) produce,
2009/01/23 01:23:23 message
while flags Ldate | Ltime | Lmicroseconds | Llongfile produce,
2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
Variables¶
This section is empty.
Functions¶
funcFlags¶
func Flags()int
Flags returns the output flags for the standard logger.The flag bits areLdate,Ltime, and so on.
funcOutput¶added ingo1.5
Output writes the output for a logging event. The string s containsthe text to print after the prefix specified by the flags of theLogger. A newline is appended if the last character of s is notalready a newline. Calldepth is the count of the number offrames to skip when computing the file name and line numberifLlongfile orLshortfile is set; a value of 1 will print the detailsfor the caller of Output.
funcPrint¶
func Print(v ...any)
Print calls Output to print to the standard logger.Arguments are handled in the manner offmt.Print.
funcPrintf¶
Printf calls Output to print to the standard logger.Arguments are handled in the manner offmt.Printf.
funcPrintln¶
func Println(v ...any)
Println calls Output to print to the standard logger.Arguments are handled in the manner offmt.Println.
funcSetFlags¶
func SetFlags(flagint)
SetFlags sets the output flags for the standard logger.The flag bits areLdate,Ltime, and so on.
Types¶
typeLogger¶
type Logger struct {// contains filtered or unexported fields}
A Logger represents an active logging object that generates lines ofoutput to anio.Writer. Each logging operation makes a single call tothe Writer's Write method. A Logger can be used simultaneously frommultiple goroutines; it guarantees to serialize access to the Writer.
Example¶
package mainimport ("bytes""fmt""log")func main() {var (buf bytes.Bufferlogger = log.New(&buf, "logger: ", log.Lshortfile))logger.Print("Hello, log file!")fmt.Print(&buf)}
Output:logger: example_test.go:19: Hello, log file!
funcDefault¶added ingo1.16
func Default() *Logger
Default returns the standard logger used by the package-level output functions.
funcNew¶
New creates a newLogger. The out variable sets thedestination to which log data will be written.The prefix appears at the beginning of each generated log line, orafter the log header if theLmsgprefix flag is provided.The flag argument defines the logging properties.
func (*Logger)Flags¶
Flags returns the output flags for the logger.The flag bits areLdate,Ltime, and so on.
func (*Logger)Output¶
Output writes the output for a logging event. The string s containsthe text to print after the prefix specified by the flags of theLogger. A newline is appended if the last character of s is notalready a newline. Calldepth is used to recover the PC and isprovided for generality, although at the moment on all pre-definedpaths it will be 2.
Example¶
package mainimport ("bytes""fmt""log")func main() {var (buf bytes.Bufferlogger = log.New(&buf, "INFO: ", log.Lshortfile)infof = func(info string) {logger.Output(2, info)})infof("Hello world")fmt.Print(&buf)}
Output:INFO: example_test.go:36: Hello world
func (*Logger)Print¶
Print calls l.Output to print to the logger.Arguments are handled in the manner offmt.Print.
func (*Logger)Printf¶
Printf calls l.Output to print to the logger.Arguments are handled in the manner offmt.Printf.
func (*Logger)Println¶
Println calls l.Output to print to the logger.Arguments are handled in the manner offmt.Println.
func (*Logger)SetFlags¶
SetFlags sets the output flags for the logger.The flag bits areLdate,Ltime, and so on.
Directories¶
Path | Synopsis |
---|---|
Package internal contains definitions used by both log and log/slog. | Package internal contains definitions used by both log and log/slog. |
Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs. | Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs. |
internal/benchmarks Package benchmarks contains benchmarks for slog. | Package benchmarks contains benchmarks for slog. |
internal/buffer Package buffer provides a pool-allocated byte buffer. | Package buffer provides a pool-allocated byte buffer. |
Package syslog provides a simple interface to the system log service. | Package syslog provides a simple interface to the system log service. |