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 Elixir
Git commands for pair programming
Change default SSH port on Fedora
Console Blackjack in Crystal
Nautical War
   Tags
android (1) apache (1) apple (1) bash (2) bashrc (1) battleship (1) blackjack (9) c (2) c++ (1) callproof (1) clang (2) clang++ (1) console (2) crm (1) crystal (1) data (1) debian (4) diff (1) django (2) elixir (1) enterprise (1) fedora (1) firewall (1) freebsd (1) g++ (1) games (1) gcc (1) git (4) 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) pairing (1) pair-programming (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) selinux (1) ssh (1) stack (1) testing (2) trace (1) typescript (2) ubuntu (2) utf8 (1) virus (1) war (1)
   Twitter

Copyright © 2019

GregDonald.com · Contact

All Rights Reserved