@@ -57,6 +57,7 @@ type Session struct {
57
57
//beforeSQLExec func(string, ...interface{})
58
58
lastSQL string
59
59
lastSQLArgs []interface {}
60
+ showSQL bool
60
61
61
62
ctx context.Context
62
63
sessionType sessionType
@@ -72,6 +73,7 @@ func (session *Session) Clone() *Session {
72
73
func (session * Session ) Init () {
73
74
session .statement .Init ()
74
75
session .statement .Engine = session .engine
76
+ session .showSQL = session .engine .showSQL
75
77
session .isAutoCommit = true
76
78
session .isCommitedOrRollbacked = false
77
79
session .isAutoClose = false
@@ -226,6 +228,16 @@ func (session *Session) Cascade(trueOrFalse ...bool) *Session {
226
228
return session
227
229
}
228
230
231
+ // MustLogSQL means record SQL or not and don't follow engine's setting
232
+ func (session * Session ) MustLogSQL (log ... bool ) * Session {
233
+ if len (log ) > 0 {
234
+ session .showSQL = log [0 ]
235
+ } else {
236
+ session .showSQL = true
237
+ }
238
+ return session
239
+ }
240
+
229
241
// NoCache ask this session do not retrieve data from cache system and
230
242
// get data from database directly.
231
243
func (session * Session ) NoCache () * Session {
@@ -842,7 +854,17 @@ func (session *Session) slice2Bean(scanResults []interface{}, fields []string, b
842
854
func (session * Session ) saveLastSQL (sql string , args ... interface {}) {
843
855
session .lastSQL = sql
844
856
session .lastSQLArgs = args
845
- session .engine .logSQL (sql , args ... )
857
+ session .logSQL (sql , args ... )
858
+ }
859
+
860
+ func (session * Session ) logSQL (sqlStr string , sqlArgs ... interface {}) {
861
+ if session .showSQL && ! session .engine .showExecTime {
862
+ if len (sqlArgs ) > 0 {
863
+ session .engine .logger .Infof ("[SQL] %v %#v" , sqlStr , sqlArgs )
864
+ } else {
865
+ session .engine .logger .Infof ("[SQL] %v" , sqlStr )
866
+ }
867
+ }
846
868
}
847
869
848
870
// LastSQL returns last query information
0 commit comments