LoginSignup
2
1

More than 3 years have passed since last update.

【Golang】log

Posted at

【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?")
}
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1