voucher/internal/pkg/log/business.go

39 lines
847 B
Go

package log
import (
"github.com/go-kratos/kratos/v2/log"
"os"
"strings"
"sync"
)
var businessLogger log.Logger
var businessLoggerOnce sync.Once
// NewBusinessLogger 获取业务日志logger
func NewBusinessLogger(path string, id, name, version string) log.Logger {
businessLoggerOnce.Do(func() {
filePath := ""
if path != "" {
filePath = strings.Trim(path, " ")
}
writeIO := os.Stdout
if filePath != "" {
f, err := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
panic("打开日志失败,注意读写权限:" + filePath)
}
writeIO = f
}
businessLogger = log.With(
log.NewStdLogger(writeIO),
"ts", log.DefaultTimestamp,
"caller", log.DefaultCaller,
"service.id", id,
"service.name", name,
"service.version", version,
)
})
return businessLogger
}