45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
|
// Copyright 2012 James Cooper. All rights reserved.
|
||
|
// Use of this source code is governed by a MIT-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// Package gorp provides a simple way to marshal Go structs to and from
|
||
|
// SQL databases. It uses the database/sql package, and should work with any
|
||
|
// compliant database/sql driver.
|
||
|
//
|
||
|
// Source code and project home:
|
||
|
// https://github.com/go-gorp/gorp
|
||
|
//
|
||
|
package gorp
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
type GorpLogger interface {
|
||
|
Printf(format string, v ...interface{})
|
||
|
}
|
||
|
|
||
|
// TraceOn turns on SQL statement logging for this DbMap. After this is
|
||
|
// called, all SQL statements will be sent to the logger. If prefix is
|
||
|
// a non-empty string, it will be written to the front of all logged
|
||
|
// strings, which can aid in filtering log lines.
|
||
|
//
|
||
|
// Use TraceOn if you want to spy on the SQL statements that gorp
|
||
|
// generates.
|
||
|
//
|
||
|
// Note that the base log.Logger type satisfies GorpLogger, but adapters can
|
||
|
// easily be written for other logging packages (e.g., the golang-sanctioned
|
||
|
// glog framework).
|
||
|
func (m *DbMap) TraceOn(prefix string, logger GorpLogger) {
|
||
|
m.logger = logger
|
||
|
if prefix == "" {
|
||
|
m.logPrefix = prefix
|
||
|
} else {
|
||
|
m.logPrefix = fmt.Sprintf("%s ", prefix)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// TraceOff turns off tracing. It is idempotent.
|
||
|
func (m *DbMap) TraceOff() {
|
||
|
m.logger = nil
|
||
|
m.logPrefix = ""
|
||
|
}
|