type Logger interface {
Debug(v ...interface{})
Debugf(format string, v ...interface{})
Error(v ...interface{})
Errorf(format string, v ...interface{})
Info(v ...interface{})
Infof(format string, v ...interface{})
Warn(v ...interface{})
Warnf(format string, v ...interface{})
Level() LogLevel
SetLevel(l LogLevel)
ShowSQL(show ...bool)
IsShowSQL() bool
}
Last active
August 13, 2022 14:20
-
-
Save nenodias/c5dd83edb6e0ca38776941f0bf441c39 to your computer and use it in GitHub Desktop.
Zerolog xorm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package database | |
import ( | |
"fmt" | |
"github.com/rs/zerolog/log" | |
_ "github.com/lib/pq" | |
"github.com/nenodias/millenium/config" | |
"xorm.io/xorm" | |
) | |
var engine *xorm.Engine | |
func Init() { | |
var err error | |
username := "postgres" | |
password := "postgres" | |
host := "localhost" | |
port := "5432" | |
database := "database" | |
urlConnection := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable", username, password, host, port, database) | |
engine, err = xorm.NewEngine("postgres", urlConnection) | |
if err != nil { | |
log.Fatal().Stack().Err(err).Str("service", "database").Msgf("Cannot start connection with database") | |
} | |
engine.SetLogger(&CurrentLogger{logger: &log.Logger, showSQL: true}) | |
} | |
func GetEngine() *xorm.Engine { | |
return engine | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package database | |
import ( | |
"github.com/rs/zerolog" | |
xlog "xorm.io/xorm/log" | |
) | |
type CurrentLogger struct { | |
logger *zerolog.Logger | |
showSQL bool | |
} | |
func (c *CurrentLogger) Debug(v ...interface{}) { | |
c.logger.Debug().Msgf("%v", v...) | |
} | |
func (c *CurrentLogger) Debugf(format string, v ...interface{}) { | |
c.logger.Debug().Msgf(format, v...) | |
} | |
func (c *CurrentLogger) Error(v ...interface{}) { | |
c.logger.Error().Msgf("%v", v...) | |
} | |
func (c *CurrentLogger) Errorf(format string, v ...interface{}) { | |
c.logger.Error().Msgf(format, v...) | |
} | |
func (c *CurrentLogger) Info(v ...interface{}) { | |
c.logger.Info().Msgf("%v", v...) | |
} | |
func (c *CurrentLogger) Infof(format string, v ...interface{}) { | |
c.logger.Info().Msgf(format, v...) | |
} | |
func (c *CurrentLogger) Warn(v ...interface{}) { | |
c.logger.Warn().Msgf("%v", v...) | |
} | |
func (c *CurrentLogger) Warnf(format string, v ...interface{}) { | |
c.logger.Warn().Msgf(format, v...) | |
} | |
func (c *CurrentLogger) Level() xlog.LogLevel { | |
level := c.logger.GetLevel() | |
switch level { | |
case zerolog.ErrorLevel: | |
return xlog.LOG_ERR | |
case zerolog.DebugLevel: | |
return xlog.LOG_DEBUG | |
case zerolog.FatalLevel: | |
return xlog.LOG_ERR | |
case zerolog.InfoLevel: | |
return xlog.LOG_INFO | |
case zerolog.NoLevel: | |
return xlog.LOG_OFF | |
case zerolog.WarnLevel: | |
return xlog.LOG_WARNING | |
default: | |
return xlog.LOG_UNKNOWN | |
} | |
} | |
func (c *CurrentLogger) SetLevel(l xlog.LogLevel) { | |
c.logger.Debug().Msgf("SetLevel called %v", l) | |
} | |
func (c *CurrentLogger) ShowSQL(show ...bool) { | |
c.showSQL = show[0] | |
} | |
func (c *CurrentLogger) IsShowSQL() bool { | |
return c.showSQL | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment