func log(s ...interface{}) {
	f, err := os.OpenFile("info.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
	if err != nil {
		fmt.Printf("error opening log file: %v", err)
		os.Exit(1)
	}
	defer f.Close()
	log.SetOutput(f)
	ss := ""
	for _, p := range s {
		switch p.(type) {
		case bool:
			ss += fmt.Sprintf("%t ", p.(bool))
		case int:
			ss += fmt.Sprintf("%d ", p.(int))
		case float64:
			ss += fmt.Sprintf("%.2f ", p.(float64))
		case string:
			ss += fmt.Sprintf("%s ", p.(string))
		}
	}
	log.Println(ss)
}

   Recent articles
Console Blackjack in Crystal
Nautical War
Reverse (Othello) in ReactJS using Typescript
Web Blackjack in ReactJS
Console Blackjack in Python 3
   Tags
android (1) apache (1) apple (1) bash (2) bashrc (1) battleship (1) blackjack (8) c (2) c++ (1) callproof (1) clang (2) clang++ (1) console (1) crystal (1) data (1) debian (4) diff (1) django (2) enterprise (1) freebsd (1) g++ (1) games (1) gcc (1) git (3) github (1) gmail (1) go-lang (3) google (1) gourse (1) kernel (3) latin1 (1) linux (4) lottery (1) microsoft (1) module (1) mongodb (1) mp3s (1) mutt (1) nautical (1) patch (1) perl6 (1) postgresql (2) powerball (1) psql (1) python (2) python3 (1) raspberrypi (1) reactjs (2) reversi (1) sdl (1) sed (1) stack (1) testing (2) trace (1) typescript (2) ubuntu (2) utf8 (1) virus (1) war (1)
   Twitter

Copyright © 2019 · GregDonald.com · All Rights Reserved