github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgLog/fileLogger.go (about)

     1  package kmgLog
     2  
     3  import (
     4  	"fmt"
     5  	"path/filepath"
     6  
     7  	"github.com/bronze1man/kmg/kmgFile"
     8  )
     9  
    10  //new file log, will mkdir if dir not exist.
    11  // usage:
    12  // 		kmgLog.DefaultLogger = kmgLog.NewFileLogger("log")
    13  func NewFileLogWriter(logDir string) LogWriter {
    14  	kmgFile.MustMkdirAll(logDir)
    15  	return func(r LogRow) {
    16  		b, err := r.Marshal()
    17  		if err != nil {
    18  			fmt.Println("[fileLoger] logToJson fail", err)
    19  			return
    20  		}
    21  		toWrite := append(b, byte('\n'))
    22  		err = kmgFile.AppendFile(filepath.Join(logDir, r.Cat+".log"), toWrite)
    23  		if err != nil {
    24  			fmt.Println("[fileLoger] logToJson fail", err)
    25  			return
    26  		}
    27  	}
    28  }