wangkaiyue 2 年 前
コミット
7c7e0e2376
2 ファイル変更103 行追加0 行削除
  1. 36 0
      go.mod
  2. 67 0
      logx/logx.go

+ 36 - 0
go.mod

@@ -0,0 +1,36 @@
+module app.yhyue.com/moapp/jylogx
+
+go 1.19
+
+require (
+	app.yhyue.com/moapp/jylog v0.0.0-20230506032239-eae3c4a9c8a7
+	github.com/sirupsen/logrus v1.9.0
+	github.com/zeromicro/go-zero v1.5.2
+)
+
+require (
+	github.com/fatih/color v1.15.0 // indirect
+	github.com/fsnotify/fsnotify v1.6.0 // indirect
+	github.com/hashicorp/hcl v1.0.0 // indirect
+	github.com/magiconair/properties v1.8.7 // indirect
+	github.com/mattn/go-colorable v0.1.13 // indirect
+	github.com/mattn/go-isatty v0.0.17 // indirect
+	github.com/mitchellh/mapstructure v1.5.0 // indirect
+	github.com/pelletier/go-toml/v2 v2.0.7 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/spaolacci/murmur3 v1.1.0 // indirect
+	github.com/spf13/afero v1.9.3 // indirect
+	github.com/spf13/cast v1.5.0 // indirect
+	github.com/spf13/jwalterweatherman v1.1.0 // indirect
+	github.com/spf13/pflag v1.0.5 // indirect
+	github.com/spf13/viper v1.15.0 // indirect
+	github.com/subosito/gotenv v1.4.2 // indirect
+	go.opentelemetry.io/otel v1.15.1 // indirect
+	go.opentelemetry.io/otel/trace v1.15.1 // indirect
+	go.uber.org/automaxprocs v1.5.2 // indirect
+	golang.org/x/sys v0.7.0 // indirect
+	golang.org/x/text v0.9.0 // indirect
+	gopkg.in/ini.v1 v1.67.0 // indirect
+	gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+)

+ 67 - 0
logx/logx.go

@@ -0,0 +1,67 @@
+package logx
+
+import (
+	"app.yhyue.com/moapp/jylog"
+	"github.com/sirupsen/logrus"
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type LogrusWriter struct {
+	logger *jylog.JyLog
+}
+
+func NewLogrusWriter(opts ...func(logger *jylog.JyLog)) logx.Writer {
+	logger := jylog.NewJyLog()
+	for _, opt := range opts {
+		opt(logger)
+	}
+
+	return &LogrusWriter{
+		logger: logger,
+	}
+}
+
+func (w *LogrusWriter) Alert(v interface{}) {
+	w.logger.Error(v)
+}
+
+func (w *LogrusWriter) Close() error {
+	w.logger.Exit(0)
+	return nil
+}
+
+func (w *LogrusWriter) Debug(v interface{}, fields ...logx.LogField) {
+	w.logger.WithFields(toLogrusFields(fields...)).Debug(v)
+}
+
+func (w *LogrusWriter) Error(v interface{}, fields ...logx.LogField) {
+	w.logger.WithFields(toLogrusFields(fields...)).Error(v)
+}
+
+func (w *LogrusWriter) Info(v interface{}, fields ...logx.LogField) {
+	w.logger.WithFields(toLogrusFields(fields...)).Info(v)
+}
+
+func (w *LogrusWriter) Severe(v interface{}) {
+	w.logger.Fatal(v)
+}
+
+func (w *LogrusWriter) Slow(v interface{}, fields ...logx.LogField) {
+	w.logger.WithFields(toLogrusFields(fields...)).Warn(v)
+}
+
+func (w *LogrusWriter) Stack(v interface{}) {
+	w.logger.Error(v)
+}
+
+func (w *LogrusWriter) Stat(v interface{}, fields ...logx.LogField) {
+	w.logger.WithFields(toLogrusFields(fields...)).Info(v)
+}
+
+func toLogrusFields(fields ...logx.LogField) logrus.Fields {
+	logrusFields := make(logrus.Fields)
+	for _, field := range fields {
+		logrusFields[field.Key] = field.Value
+	}
+	return logrusFields
+}