サーチ…
基本的な印刷
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/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")
}
実行後、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