#【Golang】log
Golangの基礎学習〜Webアプリケーション作成までの学習を終えたので、復習を兼ねてまとめていく。 基礎〜応用まで。
package main
//log
/*
https://golang.org/pkg/log/
https://golang.org/pkg/io/
logは、シンプルなログ作成の為の機能がまとめられたパッケージ。
標準エラー出力に任意のログメッセージを出力できる。
他の言語のようなinfoなどはサポートされていない。
複雑なログをやる場合は、サードパーティを使うことも考える。通常はこれで十分
*/
import (
"fmt"
"io"
"log"
"os"
)
//ログに書き込むd
//ファイル読み書きについては別途調べる
func LoggingSettings(logFile string) {
//_=error
//os.O_RDWR READ WRITE 読み書き両方する時
//os.O_CREATE 存在しなかった場合新規ファイルを作成する場合
//os.O_APPEND ファイルに追記したいとき
//0666
//引数: ファイルのパス, フラグ, パーミッション(わからなければ0666でおっけーです)
//上記モード指定。読み込む、作成、権限(0666=読み書き)を設定。
logfile, _ := os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
//stdout 画面上に出る出力 をlogfileに書き込む
multiLogFile := io.MultiWriter(os.Stdout, logfile)
//フォーマット指定
//日付、時間、短いエラーの名前
log.SetFlags(log.Ldate | log.Ltime | log.Llongfile)
//ログファイルの出力先を変更
log.SetOutput(multiLogFile)
}
func main() {
//2
LoggingSettings("test.log")
//条件分岐。エラーで終了させる。
_, err := os.Open("fdafdsafa")
if err != nil {
//ログ出力
//エラーで終了する
log.Fatalln("Exit", err)
}
//1
//日付と時間が表示される
log.Println("logging!")
//フォーマット
//日付、時間 + Type, Valを出力できる
log.Printf("%T %v", "test", "test")
//Type,Valを表示。エラーで終了
log.Fatalf("%T %v", "test", "test")
//エラーで終了させる
log.Fatalln("error!!")
//表示されない
fmt.Println("ok?")
}