Skip to content

log

O pacote log da biblioteca padrão da linguagem Go implementa logs simples.

go
func main() {
   log.Println("Log")
   log.Panicln("Log de panic")
   log.Fatalln("Log de erro")
}

Fatal chamará os.exit(1) após gravar a informação de log, enquanto panic lançará um panic.

Prefixo

go
func (l *Logger) Prefix() string // Obter prefixo

func (l *Logger) SetPrefix(prefix string) // Definir prefixo

Exemplo:

go
func main() {
  log.SetPrefix("[main]")
  log.Println("Log")
  log.Panicln("Log de panic")
}

Flag

Métodos:

go
func (l *Logger) Flags() int // Acessar

func (l *Logger) SetFlags(flag int) // Definir

Constantes:

go
const (
   Ldate         = 1 << iota     // Data
   Ltime                         // Hora
   Lmicroseconds                 // Microssegundos
   Llongfile                     // Nome completo do arquivo
   Lshortfile                    // Nome curto do arquivo
   LUTC                          // Fuso horário
   Lmsgprefix                    // Prefixo
   LstdFlags     = Ldate | Ltime // Valor inicial
)

Exemplo:

go
func main() {
   log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
   log.Println("Log")
   log.Panicln("Log de panic")
}

Claro, também é possível usar log.SetOutput(w io.Writer) para definir o caminho de saída do log, ou criar sua própria instância através do método New.

go
func New(out io.Writer, prefix string, flag int) *Logger

Em resumo, o pacote log da biblioteca padrão não fornece funcionalidades completas o suficiente. Normalmente usamos pacotes de log de terceiros mais completos, como zap, etc.

Golang por www.golangdev.cn edit