logging.go
 1package logging
 2
 3import (
 4	"log"
 5	"smoothie/server/middleware"
 6
 7	"github.com/gliderlabs/ssh"
 8)
 9
10func Middleware() middleware.Middleware {
11	return func(sh ssh.Handler) ssh.Handler {
12		return func(s ssh.Session) {
13			hpk := s.PublicKey() != nil
14			pty, _, _ := s.Pty()
15			log.Printf("%s connect %v %v %s %v %v\n", s.RemoteAddr().String(), hpk, s.Command(), pty.Term, pty.Window.Width, pty.Window.Height)
16			sh(s)
17			log.Printf("%s disconnect\n", s.RemoteAddr().String())
18		}
19	}
20}