【Go语言】日志

【Go语言】日志

我已经完成了从基础学习到创建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?")
}
广告
将在 10 秒后关闭
bannerAds