From 3228544c31943ee11957d204fc6904e112be8fcb Mon Sep 17 00:00:00 2001
From: Lunny Xiao <xiaolunwen@gmail.com>
Date: Sat, 26 Nov 2016 19:53:29 +0800
Subject: [PATCH] golint fixed for modules/log

---
 modules/log/conn.go    | 11 +++++----
 modules/log/console.go | 15 ++++++++---
 modules/log/file.go    | 56 +++++++++++++++++++++---------------------
 modules/log/log.go     | 24 ++++++++++++++++--
 modules/log/smtp.go    | 36 ++++++++++++++-------------
 5 files changed, 86 insertions(+), 56 deletions(-)

diff --git a/modules/log/conn.go b/modules/log/conn.go
index c104a16c93..b1801d08f7 100644
--- a/modules/log/conn.go
+++ b/modules/log/conn.go
@@ -23,20 +23,20 @@ type ConnWriter struct {
 	Level          int    `json:"level"`
 }
 
-// create new ConnWrite returning as LoggerInterface.
+// NewConn creates new ConnWrite returning as LoggerInterface.
 func NewConn() LoggerInterface {
 	conn := new(ConnWriter)
 	conn.Level = TRACE
 	return conn
 }
 
-// init connection writer with json config.
+// Init inits connection writer with json config.
 // json config only need key "level".
 func (cw *ConnWriter) Init(jsonconfig string) error {
 	return json.Unmarshal([]byte(jsonconfig), cw)
 }
 
-// write message in connection.
+// WriteMsg writes message in connection.
 // if connection is down, try to re-connect.
 func (cw *ConnWriter) WriteMsg(msg string, skip, level int) error {
 	if cw.Level > level {
@@ -55,10 +55,11 @@ func (cw *ConnWriter) WriteMsg(msg string, skip, level int) error {
 	return nil
 }
 
-func (_ *ConnWriter) Flush() {
+// Flush no things for this implementation
+func (cw *ConnWriter) Flush() {
 }
 
-// destroy connection writer and close tcp listener.
+// Destroy destroy connection writer and close tcp listener.
 func (cw *ConnWriter) Destroy() {
 	if cw.innerWriter == nil {
 		return
diff --git a/modules/log/console.go b/modules/log/console.go
index f5a8b96fd7..04991243fc 100644
--- a/modules/log/console.go
+++ b/modules/log/console.go
@@ -11,8 +11,10 @@ import (
 	"runtime"
 )
 
+// Brush brush type
 type Brush func(string) string
 
+// NewBrush create a brush according color
 func NewBrush(color string) Brush {
 	pre := "\033["
 	reset := "\033[0m"
@@ -37,7 +39,7 @@ type ConsoleWriter struct {
 	Level int `json:"level"`
 }
 
-// create ConsoleWriter returning as LoggerInterface.
+// NewConsole create ConsoleWriter returning as LoggerInterface.
 func NewConsole() LoggerInterface {
 	return &ConsoleWriter{
 		lg:    log.New(os.Stdout, "", log.Ldate|log.Ltime),
@@ -45,10 +47,14 @@ func NewConsole() LoggerInterface {
 	}
 }
 
+// Init inits connection writer with json config.
+// json config only need key "level".
 func (cw *ConsoleWriter) Init(config string) error {
 	return json.Unmarshal([]byte(config), cw)
 }
 
+// WriteMsg writes message in console.
+// if OS is windows, ignore colors.
 func (cw *ConsoleWriter) WriteMsg(msg string, skip, level int) error {
 	if cw.Level > level {
 		return nil
@@ -61,11 +67,12 @@ func (cw *ConsoleWriter) WriteMsg(msg string, skip, level int) error {
 	return nil
 }
 
-func (_ *ConsoleWriter) Flush() {
-
+// Flush when log should be flushed
+func (cw *ConsoleWriter) Flush() {
 }
 
-func (_ *ConsoleWriter) Destroy() {
+// Destroy when writer is destroy
+func (cw *ConsoleWriter) Destroy() {
 }
 
 func init() {
diff --git a/modules/log/file.go b/modules/log/file.go
index e9402815f0..563abc28f8 100644
--- a/modules/log/file.go
+++ b/modules/log/file.go
@@ -25,17 +25,17 @@ type FileLogWriter struct {
 	// The opened file
 	Filename string `json:"filename"`
 
-	Maxlines          int `json:"maxlines"`
-	maxlines_curlines int
+	Maxlines         int `json:"maxlines"`
+	maxlinesCurlines int
 
 	// Rotate at size
-	Maxsize         int `json:"maxsize"`
-	maxsize_cursize int
+	Maxsize        int `json:"maxsize"`
+	maxsizeCursize int
 
 	// Rotate daily
-	Daily          bool  `json:"daily"`
-	Maxdays        int64 `json:"maxdays"`
-	daily_opendate int
+	Daily         bool  `json:"daily"`
+	Maxdays       int64 `json:"maxdays"`
+	dailyOpenDate int
 
 	Rotate bool `json:"rotate"`
 
@@ -44,20 +44,20 @@ type FileLogWriter struct {
 	Level int `json:"level"`
 }
 
-// an *os.File writer with locker.
+// MuxWriter an *os.File writer with locker.
 type MuxWriter struct {
 	sync.Mutex
 	fd *os.File
 }
 
-// write to os.File.
+// Write writes to os.File.
 func (l *MuxWriter) Write(b []byte) (int, error) {
 	l.Lock()
 	defer l.Unlock()
 	return l.fd.Write(b)
 }
 
-// set os.File in writer.
+// SetFd sets os.File in writer.
 func (l *MuxWriter) SetFd(fd *os.File) {
 	if l.fd != nil {
 		l.fd.Close()
@@ -65,7 +65,7 @@ func (l *MuxWriter) SetFd(fd *os.File) {
 	l.fd = fd
 }
 
-// create a FileLogWriter returning as LoggerInterface.
+// NewFileWriter create a FileLogWriter returning as LoggerInterface.
 func NewFileWriter() LoggerInterface {
 	w := &FileLogWriter{
 		Filename: "",
@@ -103,7 +103,7 @@ func (w *FileLogWriter) Init(config string) error {
 	return w.StartLogger()
 }
 
-// start file logger. create log file and set to locker-inside file writer.
+// StartLogger start file logger. create log file and set to locker-inside file writer.
 func (w *FileLogWriter) StartLogger() error {
 	fd, err := w.createLogFile()
 	if err != nil {
@@ -119,19 +119,19 @@ func (w *FileLogWriter) StartLogger() error {
 func (w *FileLogWriter) docheck(size int) {
 	w.startLock.Lock()
 	defer w.startLock.Unlock()
-	if w.Rotate && ((w.Maxlines > 0 && w.maxlines_curlines >= w.Maxlines) ||
-		(w.Maxsize > 0 && w.maxsize_cursize >= w.Maxsize) ||
-		(w.Daily && time.Now().Day() != w.daily_opendate)) {
+	if w.Rotate && ((w.Maxlines > 0 && w.maxlinesCurlines >= w.Maxlines) ||
+		(w.Maxsize > 0 && w.maxsizeCursize >= w.Maxsize) ||
+		(w.Daily && time.Now().Day() != w.dailyOpenDate)) {
 		if err := w.DoRotate(); err != nil {
 			fmt.Fprintf(os.Stderr, "FileLogWriter(%q): %s\n", w.Filename, err)
 			return
 		}
 	}
-	w.maxlines_curlines++
-	w.maxsize_cursize += size
+	w.maxlinesCurlines++
+	w.maxsizeCursize += size
 }
 
-// write logger message into file.
+// WriteMsg writes logger message into file.
 func (w *FileLogWriter) WriteMsg(msg string, skip, level int) error {
 	if level < w.Level {
 		return nil
@@ -151,18 +151,18 @@ func (w *FileLogWriter) initFd() error {
 	fd := w.mw.fd
 	finfo, err := fd.Stat()
 	if err != nil {
-		return fmt.Errorf("get stat: %s\n", err)
+		return fmt.Errorf("get stat: %s", err)
 	}
-	w.maxsize_cursize = int(finfo.Size())
-	w.daily_opendate = time.Now().Day()
+	w.maxsizeCursize = int(finfo.Size())
+	w.dailyOpenDate = time.Now().Day()
 	if finfo.Size() > 0 {
 		content, err := ioutil.ReadFile(w.Filename)
 		if err != nil {
 			return err
 		}
-		w.maxlines_curlines = len(strings.Split(string(content), "\n"))
+		w.maxlinesCurlines = len(strings.Split(string(content), "\n"))
 	} else {
-		w.maxlines_curlines = 0
+		w.maxlinesCurlines = 0
 	}
 	return nil
 }
@@ -181,7 +181,7 @@ func (w *FileLogWriter) DoRotate() error {
 		}
 		// return error if the last file checked still existed
 		if err == nil {
-			return fmt.Errorf("rotate: cannot find free log number to rename %s\n", w.Filename)
+			return fmt.Errorf("rotate: cannot find free log number to rename %s", w.Filename)
 		}
 
 		// block Logger's io.Writer
@@ -194,12 +194,12 @@ func (w *FileLogWriter) DoRotate() error {
 		// close fd before rename
 		// Rename the file to its newfound home
 		if err = os.Rename(w.Filename, fname); err != nil {
-			return fmt.Errorf("Rotate: %s\n", err)
+			return fmt.Errorf("Rotate: %s", err)
 		}
 
 		// re-start logger
 		if err = w.StartLogger(); err != nil {
-			return fmt.Errorf("Rotate StartLogger: %s\n", err)
+			return fmt.Errorf("Rotate StartLogger: %s", err)
 		}
 
 		go w.deleteOldLog()
@@ -226,12 +226,12 @@ func (w *FileLogWriter) deleteOldLog() {
 	})
 }
 
-// destroy file logger, close file writer.
+// Destroy destroy file logger, close file writer.
 func (w *FileLogWriter) Destroy() {
 	w.mw.fd.Close()
 }
 
-// flush file logger.
+// Flush flush file logger.
 // there are no buffering messages in file logger in memory.
 // flush file means sync file from disk.
 func (w *FileLogWriter) Flush() {
diff --git a/modules/log/log.go b/modules/log/log.go
index 41be414051..5a9efe6a28 100644
--- a/modules/log/log.go
+++ b/modules/log/log.go
@@ -15,10 +15,12 @@ import (
 )
 
 var (
-	loggers   []*Logger
+	loggers []*Logger
+	// GitLogger logger for git
 	GitLogger *Logger
 )
 
+// NewLogger create a logger
 func NewLogger(bufLen int64, mode, config string) {
 	logger := newLogger(bufLen)
 
@@ -37,6 +39,7 @@ func NewLogger(bufLen int64, mode, config string) {
 	}
 }
 
+// NewGitLogger create a logger for git
 // FIXME: use same log level as other loggers.
 func NewGitLogger(logPath string) {
 	os.MkdirAll(path.Dir(logPath), os.ModePerm)
@@ -44,42 +47,49 @@ func NewGitLogger(logPath string) {
 	GitLogger.SetLogger("file", fmt.Sprintf(`{"level":0,"filename":"%s","rotate":false}`, logPath))
 }
 
+// Trace records trace log
 func Trace(format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Trace(format, v...)
 	}
 }
 
+// Debug records debug log
 func Debug(format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Debug(format, v...)
 	}
 }
 
+// Info records info log
 func Info(format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Info(format, v...)
 	}
 }
 
+// Warn records warnning log
 func Warn(format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Warn(format, v...)
 	}
 }
 
+// Error records error log
 func Error(skip int, format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Error(skip, format, v...)
 	}
 }
 
+// Critical records critical log
 func Critical(skip int, format string, v ...interface{}) {
 	for _, logger := range loggers {
 		logger.Critical(skip, format, v...)
 	}
 }
 
+// Fatal records error log and exit process
 func Fatal(skip int, format string, v ...interface{}) {
 	Error(skip, format, v...)
 	for _, l := range loggers {
@@ -88,6 +98,7 @@ func Fatal(skip int, format string, v ...interface{}) {
 	os.Exit(1)
 }
 
+// Close closes all the loggers
 func Close() {
 	for _, l := range loggers {
 		l.Close()
@@ -101,8 +112,10 @@ func Close() {
 // |___|___|  /__|  \___  >__|   |__|  (____  /\___  >___  >
 //          \/          \/                  \/     \/    \/
 
-type LogLevel int
+// LogLevel level type for log
+//type LogLevel int
 
+// log levels
 const (
 	TRACE = iota
 	DEBUG
@@ -274,36 +287,43 @@ func (l *Logger) Close() {
 	}
 }
 
+// Trace records trace log
 func (l *Logger) Trace(format string, v ...interface{}) {
 	msg := fmt.Sprintf("[T] "+format, v...)
 	l.writerMsg(0, TRACE, msg)
 }
 
+// Debug records debug log
 func (l *Logger) Debug(format string, v ...interface{}) {
 	msg := fmt.Sprintf("[D] "+format, v...)
 	l.writerMsg(0, DEBUG, msg)
 }
 
+// Info records information log
 func (l *Logger) Info(format string, v ...interface{}) {
 	msg := fmt.Sprintf("[I] "+format, v...)
 	l.writerMsg(0, INFO, msg)
 }
 
+// Warn records warnning log
 func (l *Logger) Warn(format string, v ...interface{}) {
 	msg := fmt.Sprintf("[W] "+format, v...)
 	l.writerMsg(0, WARN, msg)
 }
 
+// Error records error log
 func (l *Logger) Error(skip int, format string, v ...interface{}) {
 	msg := fmt.Sprintf("[E] "+format, v...)
 	l.writerMsg(skip, ERROR, msg)
 }
 
+// Critical records critical log
 func (l *Logger) Critical(skip int, format string, v ...interface{}) {
 	msg := fmt.Sprintf("[C] "+format, v...)
 	l.writerMsg(skip, CRITICAL, msg)
 }
 
+// Fatal records error log and exit the process
 func (l *Logger) Fatal(skip int, format string, v ...interface{}) {
 	msg := fmt.Sprintf("[F] "+format, v...)
 	l.writerMsg(skip, FATAL, msg)
diff --git a/modules/log/smtp.go b/modules/log/smtp.go
index 0c87f0c704..760b8e8bd7 100644
--- a/modules/log/smtp.go
+++ b/modules/log/smtp.go
@@ -16,7 +16,7 @@ const (
 	subjectPhrase = "Diagnostic message from server"
 )
 
-// smtpWriter implements LoggerInterface and is used to send emails via given SMTP-server.
+// SMTPWriter implements LoggerInterface and is used to send emails via given SMTP-server.
 type SMTPWriter struct {
 	Username           string   `json:"Username"`
 	Password           string   `json:"password"`
@@ -26,12 +26,12 @@ type SMTPWriter struct {
 	Level              int      `json:"level"`
 }
 
-// create smtp writer.
+// NewSMTPWriter creates smtp writer.
 func NewSMTPWriter() LoggerInterface {
 	return &SMTPWriter{Level: TRACE}
 }
 
-// init smtp writer with json config.
+// Init smtp writer with json config.
 // config like:
 //	{
 //		"Username":"example@gmail.com",
@@ -45,41 +45,43 @@ func (sw *SMTPWriter) Init(jsonconfig string) error {
 	return json.Unmarshal([]byte(jsonconfig), sw)
 }
 
-// write message in smtp writer.
+// WriteMsg writes message in smtp writer.
 // it will send an email with subject and only this message.
-func (s *SMTPWriter) WriteMsg(msg string, skip, level int) error {
-	if level < s.Level {
+func (sw *SMTPWriter) WriteMsg(msg string, skip, level int) error {
+	if level < sw.Level {
 		return nil
 	}
 
-	hp := strings.Split(s.Host, ":")
+	hp := strings.Split(sw.Host, ":")
 
 	// Set up authentication information.
 	auth := smtp.PlainAuth(
 		"",
-		s.Username,
-		s.Password,
+		sw.Username,
+		sw.Password,
 		hp[0],
 	)
 	// Connect to the server, authenticate, set the sender and recipient,
 	// and send the email all in one step.
-	content_type := "Content-Type: text/plain" + "; charset=UTF-8"
-	mailmsg := []byte("To: " + strings.Join(s.RecipientAddresses, ";") + "\r\nFrom: " + s.Username + "<" + s.Username +
-		">\r\nSubject: " + s.Subject + "\r\n" + content_type + "\r\n\r\n" + fmt.Sprintf(".%s", time.Now().Format("2006-01-02 15:04:05")) + msg)
+	contentType := "Content-Type: text/plain" + "; charset=UTF-8"
+	mailmsg := []byte("To: " + strings.Join(sw.RecipientAddresses, ";") + "\r\nFrom: " + sw.Username + "<" + sw.Username +
+		">\r\nSubject: " + sw.Subject + "\r\n" + contentType + "\r\n\r\n" + fmt.Sprintf(".%s", time.Now().Format("2006-01-02 15:04:05")) + msg)
 
 	return smtp.SendMail(
-		s.Host,
+		sw.Host,
 		auth,
-		s.Username,
-		s.RecipientAddresses,
+		sw.Username,
+		sw.RecipientAddresses,
 		mailmsg,
 	)
 }
 
-func (_ *SMTPWriter) Flush() {
+// Flush when log should be flushed
+func (sw *SMTPWriter) Flush() {
 }
 
-func (_ *SMTPWriter) Destroy() {
+// Destroy when writer is destroy
+func (sw *SMTPWriter) Destroy() {
 }
 
 func init() {