Suche…


Grundlegendes Drucken

Go verfügt über eine integrierte Protokollierungsbibliothek, die als log mit der häufig verwendeten Methode Print und seinen Varianten bezeichnet wird. Sie können die Bibliothek importieren und dann einige grundlegende Druckvorgänge durchführen:

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
}

Protokollierung in Datei

Es ist möglich, das Protokollziel mit etwas anzugeben, das die io.Writer-Schnittstelle anzeigt. Damit können wir uns in eine Datei einloggen:

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")
}

Ausgabe:

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

Protokollierung in Syslog

Es ist auch möglich, sich mit log/syslog wie folgt bei syslog log/syslog :

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")
}

Nach dem Ausführen können wir diese Zeile in syslog sehen:

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow