ILogger interface changed and some golint issues resolved, #367 resolved
This commit is contained in:
parent
7d2967c786
commit
b336fa1880
13
README.md
13
README.md
|
@ -71,16 +71,6 @@ Drivers for Go's sql package which currently support database/sql includes:
|
|||
* select ForUpdate support
|
||||
* many bugs fixed
|
||||
|
||||
* **v0.4.3**
|
||||
* Json column type support
|
||||
* oracle expirement support
|
||||
* bug fixed
|
||||
|
||||
* **v0.4.2**
|
||||
* Transaction will auto rollback if not Rollback or Commit be called.
|
||||
* Gonic Mapper support
|
||||
* bug fixed
|
||||
|
||||
[More changelogs ...](https://github.com/go-xorm/manual-en-US/tree/master/chapter-16)
|
||||
|
||||
# Installation
|
||||
|
@ -214,7 +204,7 @@ affected, err := engine.Update(&user, &User{Name:name})
|
|||
// UPDATE user SET ... Where name = ?
|
||||
|
||||
var ids = []int64{1, 2, 3}
|
||||
affected, err := engine.In(ids).Update(&user)
|
||||
affected, err := engine.In("id", ids).Update(&user)
|
||||
// UPDATE user SET ... Where id IN (?, ?, ?)
|
||||
|
||||
// force update indicated columns by Cols
|
||||
|
@ -234,6 +224,7 @@ affected, err := engine.Id(1).AllCols().Update(&user)
|
|||
```Go
|
||||
affected, err := engine.Where(...).Delete(&user)
|
||||
// DELETE FROM user Where ...
|
||||
affected, err := engine.Id(2).Delete(&user)
|
||||
```
|
||||
|
||||
* Count records
|
||||
|
|
23
engine.go
23
engine.go
|
@ -36,17 +36,8 @@ type Engine struct {
|
|||
mutex *sync.RWMutex
|
||||
Cacher core.Cacher
|
||||
|
||||
// 是否显示SQL
|
||||
showSQL bool
|
||||
showExecTime bool
|
||||
//ShowSQL bool
|
||||
|
||||
// !nashtsai! TODO ought to deprecate these but having logger to control its log level
|
||||
/*ShowInfo bool
|
||||
ShowErr bool*/
|
||||
//ShowDebug bool
|
||||
//ShowWarn bool*/
|
||||
// --227
|
||||
|
||||
logger core.ILogger
|
||||
TZLocation *time.Location
|
||||
|
@ -248,7 +239,7 @@ func (engine *Engine) Close() error {
|
|||
func (engine *Engine) Ping() error {
|
||||
session := engine.NewSession()
|
||||
defer session.Close()
|
||||
engine.LogInfo("PING DATABASE", engine.DriverName)
|
||||
engine.logger.Info("PING DATABASE", engine.DriverName)
|
||||
return session.Ping()
|
||||
}
|
||||
|
||||
|
@ -296,7 +287,7 @@ func (engine *Engine) logSQLExecutionTime(sqlStr string, args []interface{}, exe
|
|||
}
|
||||
|
||||
// LogError logging error
|
||||
func (engine *Engine) LogError(contents ...interface{}) {
|
||||
/*func (engine *Engine) LogError(contents ...interface{}) {
|
||||
engine.logger.Err(contents...)
|
||||
}
|
||||
|
||||
|
@ -333,7 +324,7 @@ func (engine *Engine) LogWarn(contents ...interface{}) {
|
|||
// LogWarnf logging warnf
|
||||
func (engine *Engine) LogWarnf(format string, contents ...interface{}) {
|
||||
engine.logger.Warningf(format, contents...)
|
||||
}
|
||||
}*/
|
||||
|
||||
// Sql method let's you manualy write raw sql and operate
|
||||
// For example:
|
||||
|
@ -1018,7 +1009,7 @@ func (engine *Engine) mapType(v reflect.Value) *core.Table {
|
|||
location := k[len("INDEX")+1 : len(k)-1]
|
||||
col.TimeZone, err = time.LoadLocation(location)
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
}
|
||||
case k == "UPDATED":
|
||||
col.IsUpdated = true
|
||||
|
@ -1079,16 +1070,16 @@ func (engine *Engine) mapType(v reflect.Value) *core.Table {
|
|||
if len(fs2) == 2 {
|
||||
col.Length, err = strconv.Atoi(fs2[0])
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
}
|
||||
col.Length2, err = strconv.Atoi(fs2[1])
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
}
|
||||
} else if len(fs2) == 1 {
|
||||
col.Length, err = strconv.Atoi(fs2[0])
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -360,8 +360,8 @@ func setColumnTime(bean interface{}, col *core.Column, t time.Time) {
|
|||
}
|
||||
|
||||
func genCols(table *core.Table, session *Session, bean interface{}, useCol bool, includeQuote bool) ([]string, []interface{}, error) {
|
||||
colNames := make([]string, 0)
|
||||
args := make([]interface{}, 0)
|
||||
colNames := make([]string, 0, len(table.ColumnsSeq()))
|
||||
args := make([]interface{}, 0, len(table.ColumnsSeq()))
|
||||
|
||||
for _, col := range table.Columns() {
|
||||
lColName := strings.ToLower(col.Name)
|
||||
|
@ -376,8 +376,7 @@ func genCols(table *core.Table, session *Session, bean interface{}, useCol bool,
|
|||
|
||||
fieldValuePtr, err := col.ValueOf(bean)
|
||||
if err != nil {
|
||||
session.Engine.LogError(err)
|
||||
continue
|
||||
return nil, nil, err
|
||||
}
|
||||
fieldValue := *fieldValuePtr
|
||||
|
||||
|
|
39
logger.go
39
logger.go
|
@ -18,6 +18,27 @@ const (
|
|||
DEFAULT_LOG_LEVEL = core.LOG_DEBUG
|
||||
)
|
||||
|
||||
var _ core.ILogger = DiscardLogger{}
|
||||
|
||||
type DiscardLogger struct{}
|
||||
|
||||
func (DiscardLogger) Debug(v ...interface{}) {}
|
||||
func (DiscardLogger) Debugf(format string, v ...interface{}) {}
|
||||
func (DiscardLogger) Error(v ...interface{}) {}
|
||||
func (DiscardLogger) Errorf(format string, v ...interface{}) {}
|
||||
func (DiscardLogger) Info(v ...interface{}) {}
|
||||
func (DiscardLogger) Infof(format string, v ...interface{}) {}
|
||||
func (DiscardLogger) Warn(v ...interface{}) {}
|
||||
func (DiscardLogger) Warnf(format string, v ...interface{}) {}
|
||||
func (DiscardLogger) Level() core.LogLevel {
|
||||
return core.LOG_UNKNOWN
|
||||
}
|
||||
func (DiscardLogger) SetLevel(l core.LogLevel) {}
|
||||
func (DiscardLogger) ShowSQL(show ...bool) {}
|
||||
func (DiscardLogger) IsShowSQL() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// SimpleLogger is the default implment of core.ILogger
|
||||
type SimpleLogger struct {
|
||||
DEBUG *log.Logger
|
||||
|
@ -52,7 +73,7 @@ func NewSimpleLogger3(out io.Writer, prefix string, flag int, l core.LogLevel) *
|
|||
}
|
||||
|
||||
// Err implement core.ILogger
|
||||
func (s *SimpleLogger) Err(v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Error(v ...interface{}) {
|
||||
if s.level <= core.LOG_ERR {
|
||||
s.ERR.Println(v...)
|
||||
}
|
||||
|
@ -60,7 +81,7 @@ func (s *SimpleLogger) Err(v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Errf implement core.ILogger
|
||||
func (s *SimpleLogger) Errf(format string, v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Errorf(format string, v ...interface{}) {
|
||||
if s.level <= core.LOG_ERR {
|
||||
s.ERR.Printf(format, v...)
|
||||
}
|
||||
|
@ -68,7 +89,7 @@ func (s *SimpleLogger) Errf(format string, v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Debug implement core.ILogger
|
||||
func (s *SimpleLogger) Debug(v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Debug(v ...interface{}) {
|
||||
if s.level <= core.LOG_DEBUG {
|
||||
s.DEBUG.Println(v...)
|
||||
}
|
||||
|
@ -76,7 +97,7 @@ func (s *SimpleLogger) Debug(v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Debugf implement core.ILogger
|
||||
func (s *SimpleLogger) Debugf(format string, v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Debugf(format string, v ...interface{}) {
|
||||
if s.level <= core.LOG_DEBUG {
|
||||
s.DEBUG.Printf(format, v...)
|
||||
}
|
||||
|
@ -84,7 +105,7 @@ func (s *SimpleLogger) Debugf(format string, v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Info implement core.ILogger
|
||||
func (s *SimpleLogger) Info(v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Info(v ...interface{}) {
|
||||
if s.level <= core.LOG_INFO {
|
||||
s.INFO.Println(v...)
|
||||
}
|
||||
|
@ -92,7 +113,7 @@ func (s *SimpleLogger) Info(v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Infof implement core.ILogger
|
||||
func (s *SimpleLogger) Infof(format string, v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Infof(format string, v ...interface{}) {
|
||||
if s.level <= core.LOG_INFO {
|
||||
s.INFO.Printf(format, v...)
|
||||
}
|
||||
|
@ -100,7 +121,7 @@ func (s *SimpleLogger) Infof(format string, v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Warning implement core.ILogger
|
||||
func (s *SimpleLogger) Warning(v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Warn(v ...interface{}) {
|
||||
if s.level <= core.LOG_WARNING {
|
||||
s.WARN.Println(v...)
|
||||
}
|
||||
|
@ -108,7 +129,7 @@ func (s *SimpleLogger) Warning(v ...interface{}) (err error) {
|
|||
}
|
||||
|
||||
// Warningf implement core.ILogger
|
||||
func (s *SimpleLogger) Warningf(format string, v ...interface{}) (err error) {
|
||||
func (s *SimpleLogger) Warnf(format string, v ...interface{}) {
|
||||
if s.level <= core.LOG_WARNING {
|
||||
s.WARN.Printf(format, v...)
|
||||
}
|
||||
|
@ -121,7 +142,7 @@ func (s *SimpleLogger) Level() core.LogLevel {
|
|||
}
|
||||
|
||||
// SetLevel implement core.ILogger
|
||||
func (s *SimpleLogger) SetLevel(l core.LogLevel) (err error) {
|
||||
func (s *SimpleLogger) SetLevel(l core.LogLevel) {
|
||||
s.level = l
|
||||
return
|
||||
}
|
||||
|
|
303
session.go
303
session.go
File diff suppressed because it is too large
Load Diff
20
statement.go
20
statement.go
|
@ -231,7 +231,7 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{},
|
|||
|
||||
fieldValuePtr, err := col.ValueOf(bean)
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -266,7 +266,7 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{},
|
|||
if structConvert, ok := fieldValue.Addr().Interface().(core.Conversion); ok {
|
||||
data, err := structConvert.ToDB()
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
} else {
|
||||
val = data
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{},
|
|||
if structConvert, ok := fieldValue.Interface().(core.Conversion); ok {
|
||||
data, err := structConvert.ToDB()
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
} else {
|
||||
val = data
|
||||
}
|
||||
|
@ -389,7 +389,7 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{},
|
|||
if col.SQLType.IsText() {
|
||||
bytes, err := json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = string(bytes)
|
||||
|
@ -406,7 +406,7 @@ func buildUpdates(engine *Engine, table *core.Table, bean interface{},
|
|||
} else {
|
||||
bytes, err = json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = bytes
|
||||
|
@ -483,7 +483,7 @@ func buildConditions(engine *Engine, table *core.Table, bean interface{},
|
|||
|
||||
fieldValuePtr, err := col.ValueOf(bean)
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -579,7 +579,7 @@ func buildConditions(engine *Engine, table *core.Table, bean interface{},
|
|||
if col.SQLType.IsText() {
|
||||
bytes, err := json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = string(bytes)
|
||||
|
@ -588,7 +588,7 @@ func buildConditions(engine *Engine, table *core.Table, bean interface{},
|
|||
var err error
|
||||
bytes, err = json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = bytes
|
||||
|
@ -625,7 +625,7 @@ func buildConditions(engine *Engine, table *core.Table, bean interface{},
|
|||
if col.SQLType.IsText() {
|
||||
bytes, err := json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = string(bytes)
|
||||
|
@ -642,7 +642,7 @@ func buildConditions(engine *Engine, table *core.Table, bean interface{},
|
|||
} else {
|
||||
bytes, err = json.Marshal(fieldValue.Interface())
|
||||
if err != nil {
|
||||
engine.LogError(err)
|
||||
engine.logger.Error(err)
|
||||
continue
|
||||
}
|
||||
val = bytes
|
||||
|
|
36
syslogger.go
36
syslogger.go
|
@ -25,36 +25,36 @@ func NewSyslogLogger(w *syslog.Writer) *SyslogLogger {
|
|||
return &SyslogLogger{w: w}
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Debug(v ...interface{}) (err error) {
|
||||
return s.w.Debug(fmt.Sprint(v...))
|
||||
func (s *SyslogLogger) Debug(v ...interface{}) {
|
||||
s.w.Debug(fmt.Sprint(v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Debugf(format string, v ...interface{}) (err error) {
|
||||
return s.w.Debug(fmt.Sprintf(format, v...))
|
||||
func (s *SyslogLogger) Debugf(format string, v ...interface{}) {
|
||||
s.w.Debug(fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Err(v ...interface{}) (err error) {
|
||||
return s.w.Err(fmt.Sprint(v...))
|
||||
func (s *SyslogLogger) Error(v ...interface{}) {
|
||||
s.w.Err(fmt.Sprint(v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Errf(format string, v ...interface{}) (err error) {
|
||||
return s.w.Err(fmt.Sprintf(format, v...))
|
||||
func (s *SyslogLogger) Errorf(format string, v ...interface{}) {
|
||||
s.w.Err(fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Info(v ...interface{}) (err error) {
|
||||
return s.w.Info(fmt.Sprint(v...))
|
||||
func (s *SyslogLogger) Info(v ...interface{}) {
|
||||
s.w.Info(fmt.Sprint(v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Infof(format string, v ...interface{}) (err error) {
|
||||
return s.w.Info(fmt.Sprintf(format, v...))
|
||||
func (s *SyslogLogger) Infof(format string, v ...interface{}) {
|
||||
s.w.Info(fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Warning(v ...interface{}) (err error) {
|
||||
return s.w.Warning(fmt.Sprint(v...))
|
||||
func (s *SyslogLogger) Warn(v ...interface{}) {
|
||||
s.w.Warning(fmt.Sprint(v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Warningf(format string, v ...interface{}) (err error) {
|
||||
return s.w.Warning(fmt.Sprintf(format, v...))
|
||||
func (s *SyslogLogger) Warnf(format string, v ...interface{}) {
|
||||
s.w.Warning(fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
func (s *SyslogLogger) Level() core.LogLevel {
|
||||
|
@ -62,9 +62,7 @@ func (s *SyslogLogger) Level() core.LogLevel {
|
|||
}
|
||||
|
||||
// SetLevel always return error, as current log/syslog package doesn't allow to set priority level after syslog.Writer created
|
||||
func (s *SyslogLogger) SetLevel(l core.LogLevel) (err error) {
|
||||
return fmt.Errorf("unable to set syslog level")
|
||||
}
|
||||
func (s *SyslogLogger) SetLevel(l core.LogLevel) {}
|
||||
|
||||
func (s *SyslogLogger) ShowSQL(show ...bool) {
|
||||
if len(show) == 0 {
|
||||
|
|
Loading…
Reference in New Issue