サーチ…


基本的な印刷

Goには、 logと呼ばれる組み込みのロギングライブラリがあり、一般的に使用されるPrintメソッドとその変形があります。ライブラリをインポートして基本的な印刷を行うことができます:

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
}

ファイルへのロギング

ログ宛先をio.Writerインターフェースを規定するもので指定することは可能です。これで、ファイルにログすることができます:

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

出力:

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

syslogへのロギング

次のようにsyslogにlog/sysloglog/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")
}

実行後、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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow