【Go】go修行7日目 loggingとか

package main
import "fmt"
func main() {
i := 1
switch {
case i < 5:
fmt.Println("<5")
fallthrough
case i < 7:
fmt.Println("<7")
default:
fmt.Println("")
}
}
<5
<7
package main
import "fmt"
func getOsName() string {
return "windows"
}
func main() {
// os := "windows"
os := getOsName()
switch os {
case "mac":
fmt.Println("Mac")
case "windows":
fmt.Println("Windows")
// defaultなくても大丈夫
default:
fmt.Println("Default")
}
}
hello foo
world foo
hello
world
ファイルを開く処理などで使う
package main
import (
"fmt"
"os"
)
func main() {
// ファイルを開く
file, _ := os.Open("./test.go")
// 処理終了後にファイルを閉じる必要があるのでdeferを使う
defer file.Close()
data := make([]byte, 100)
file.Read(data)
fmt.Println(string(data))
}
package main
import (
"fmt"
"os"
)
func main() {
// ファイルを開く
file, _ :=
package main
import (
"log"
"os"
)
func main() {
// でたらめなファイルを開く
_, err := os.Open("aaaaa")
// エラー処理
if err != nil {
log.Fatalln("exit", err)
}
log.Println("logging")
log.Println("%T %v", "test", "test")
// Fatalが実行されると処理が終了する
log.Fatalf("%T %v", "test", "test")
log.Fatalln("error")
}
2020/06/18 21:50:01 exit open aaaaa: The system cannot find the file
specified.
ファイル書き込み
package main
import (
"io"
"log"
"os"
)
// loggin関数
func LoggingSettings(logFile string) {
// 666、読み書き追記できるように作る
logfile, _ := os.OpenFile(logFile, os.O_RDWR|os.O_CREATE
|os.O_APPEND, 0666)
// Stdoutで標準出力もしつつlogging
multilogFile := io.MultiWriter(os.Stdout, logfile)
// 時間とか、Llongfileは絶対パス表記
log.SetFlags(log.Ldate | log.Ltime | log.Llongfile)
log.SetOutput(multilogFile)
}
func main() {
LoggingSettings("test.log")
// でたらめなファイルを開く
_, err := os.Open("aaaaa")
// エラー処理
if err != nil {
log.Fatalln("exit", err)
}
}