wailovet 6 years ago
parent
commit
b7329ead2d
  1. 51
      src/helper/log.go

51
src/helper/log.go

@ -1,6 +1,12 @@
package helper
import "log"
import (
"fmt"
"io"
"log"
"os"
"time"
)
type Log struct {
}
@ -17,3 +23,46 @@ func GetInstanceLog() *Log {
func (l *Log) Out(args ...interface{}) {
log.Println(args)
}
func StartLogToFile(dir string) {
log.SetOutput(newLogWriter(dir))
}
type logWriter struct {
path string
}
func newLogWriter(path string) *logWriter {
_, notok := os.Stat(path)
if notok != nil {
err := os.MkdirAll(path, os.ModeDir)
if err != nil {
println(err.Error())
}
}
return &logWriter{
path: path,
}
}
func (that *logWriter) Write(p []byte) (n int, err error) {
fmt.Print(string(p))
that.WriteFile(fmt.Sprintf(that.path+"/%s.log", time.Now().Format("2006_01_02_15")), p, 0644)
return len(p), nil
}
func (that *logWriter) WriteFile(filename string, bytes []byte, perm os.FileMode) {
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, perm)
if err != nil {
return
}
n, err := f.Write(bytes)
if err == nil && n < len(bytes) {
err = io.ErrShortWrite
}
if err1 := f.Close(); err == nil {
err = err1
}
return
}
Loading…
Cancel
Save