Recherche…


Impression de base

Go dispose d'une bibliothèque de journalisation intégrée appelée log avec une méthode d'utilisation courante, Print et ses variantes. Vous pouvez importer la bibliothèque puis faire des impressions de base:

package main

import "log"

func main() {

    log.Println("Hello, world!")
    // Prints 'Hello, world!' on a single line

    log.Print("Hello, again! \n")
    // Prints 'Hello, again!' but doesn't break at the end without \n

    hello := "Hello, Stackers!"
    log.Printf("The type of hello is: %T \n", hello)
    // Allows you to use standard string formatting. Prints the type 'string' for %T
    // 'The type of hello is: string
}

Connexion au fichier

Il est possible de spécifier la destination du journal avec quelque chose qui correspond à l'interface io.Writer. Avec ça on peut se connecter au fichier:

package main

import (
    "log"
    "os"
)

func main() {
    logfile, err := os.OpenFile("test.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
    if err != nil {
        log.Fatalln(err)
    }
    defer logfile.Close()

    log.SetOutput(logfile)
    log.Println("Log entry")
}

Sortie:

$ cat test.log
2016/07/26 07:29:05 Log entry

Connexion à syslog

Il est également possible de se connecter à syslog avec log/syslog comme ceci:

package main

import (
    "log"
    "log/syslog"
)

func main() {
    syslogger, err := syslog.New(syslog.LOG_INFO, "syslog_example")
    if err != nil {
        log.Fatalln(err)
    }

    log.SetOutput(syslogger)
    log.Println("Log entry")
}

Après l'exécution, nous pourrons voir cette ligne dans syslog:

Jul 26 07:35:21 localhost syslog_example[18358]: 2016/07/26 07:35:21 Log entry


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow