log.SetPrefix în Go

Setează un text pus la începutul fiecărui rând din jurnalul implicit, de exemplu numele aplicației.

Sintaxă
func SetPrefix(prefix string)

Ce face log.SetPrefix

log.SetPrefix adaugă un text fix la începutul fiecărui mesaj, înaintea datei. Cu opțiunea log.Lmsgprefix (dată la SetFlags), prefixul se mută după dată, chiar înaintea mesajului.

Este util când mai multe programe scriu în același loc și vrei să știi cine a scris fiecare rând.

Parametri

Parametru Descriere
prefix Textul de pus la început (include tu spațiul sau două puncte).

Ce returnează

Nimic. log.Prefix() returnează prefixul curent.

Exemple

Exemplul 1: Numele aplicației în fiecare rând

package main

import (
    "log"
    "os"
)

func main() {
    log.SetOutput(os.Stdout)
    log.SetFlags(0)
    log.SetPrefix("[facturi] ")
    log.Println("generez factura 1042")
    log.Println("trimit e-mail către ana@exemplu.ro")
}

Rezultat

[facturi] generez factura 1042
[facturi] trimit e-mail către ana@exemplu.ro

Exemplul 2: Prefixul după dată, cu Lmsgprefix

package main

import "log"

func main() {
    log.SetPrefix("EROARE: ")
    log.Println("înainte de dată")
    log.SetFlags(log.LstdFlags | log.Lmsgprefix)
    log.Println("după dată")
}

Rezultat posibil (diferă la fiecare rulare)

EROARE: 2025/03/14 10:30:00 înainte de dată
2025/03/14 10:30:00 EROARE: după dată

Greșeli frecvente

  • Schimbi prefixul jurnalului global din mai multe goroutine ca să marchezi mesajele lor. Prefixul este unul pentru tot programul; creează un log.New separat pentru fiecare componentă.

Comenzi înrudite

  • log.SetFlags: Alege ce informații se pun la începutul fiecărui rând din jurnal: data, ora, microsecundele, fișierul și linia.
  • log.New: Creează un jurnal separat (*log.Logger), cu propria destinație, prefix și opțiuni.
  • log.SetOutput: Schimbă locul în care scrie jurnalul implicit: alt fișier, ieșirea standard, un buffer sau mai multe deodată.