1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package zlog
- import (
- "fmt"
- "io"
- "log"
- "os"
- "time"
- "sikey.com/websocket/utils/format"
- )
- const (
- // 控制环境不写入到 es 数据库里
- notPushEnvironment = "env"
- )
- type Writer interface {
- io.Writer
- GetEnv() string
- }
- type ZeroWriter struct {
- name string
- path string
- env string
- }
- func NewZeroWriter(name, path, env string) (*ZeroWriter, error) {
- return &ZeroWriter{name: name, path: path, env: env}, nil
- }
- func (w *ZeroWriter) GetEnv() string {
- return w.env
- }
- func (w *ZeroWriter) Write(p []byte) (int, error) {
- // date
- date := time.Now().Format(format.DateParseLeftFormat)
- filename := fmt.Sprintf("%s/%s-%s.log", w.path, w.name, date)
- var err error
- var file *os.File
- if fileStat(filename) {
- file, err = os.OpenFile(filename, os.O_RDWR|os.O_APPEND, os.ModeAppend)
- } else {
- file, err = os.Create(filename)
- }
- if err != nil {
- log.Println("open file error: ", err)
- }
- return file.Write(p)
- }
- // fileStat 检查文件是否存在
- func fileStat(path string) bool {
- _, err := os.Stat(path)
- if err == nil {
- return true
- }
- return os.IsExist(err)
- }
|