diff --git a/conf/defaults.ini b/conf/defaults.ini
index 404a7950bf3..51c549bf070 100644
--- a/conf/defaults.ini
+++ b/conf/defaults.ini
@@ -82,6 +82,9 @@ max_idle_conn = 2
# Max conn setting default is 0 (mean not set)
max_open_conn =
+# Set to true to log the sql calls and execution times.
+debug =
+
# For "postgres", use either "disable", "require" or "verify-full"
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode = disable
diff --git a/conf/sample.ini b/conf/sample.ini
index c7d2d1d2695..ec01b7c7979 100644
--- a/conf/sample.ini
+++ b/conf/sample.ini
@@ -91,6 +91,8 @@
# Max conn setting default is 0 (mean not set)
;max_open_conn =
+# Set to true to log the sql calls and execution times.
+debug =
#################################### Session ####################################
[session]
diff --git a/docs/sources/installation/configuration.md b/docs/sources/installation/configuration.md
index 5da485144c8..12c9d121490 100644
--- a/docs/sources/installation/configuration.md
+++ b/docs/sources/installation/configuration.md
@@ -224,6 +224,9 @@ The maximum number of connections in the idle connection pool.
### max_open_conn
The maximum number of open connections to the database.
+### debug
+Set to `true` to log the sql calls and execution times.
+
## [security]
diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go
index e2fc1f29063..bd27e8b8871 100644
--- a/pkg/services/sqlstore/sqlstore.go
+++ b/pkg/services/sqlstore/sqlstore.go
@@ -158,10 +158,14 @@ func getEngine() (*xorm.Engine, error) {
} else {
engine.SetMaxOpenConns(DbCfg.MaxOpenConn)
engine.SetMaxIdleConns(DbCfg.MaxIdleConn)
- engine.SetLogger(&xorm.DiscardLogger{})
- // engine.SetLogger(NewXormLogger(log.LvlInfo, log.New("sqlstore.xorm")))
- // engine.ShowSQL = true
- // engine.ShowInfo = true
+ debugSql := setting.Cfg.Section("database").Key("debug").MustBool(false)
+ if !debugSql {
+ engine.SetLogger(&xorm.DiscardLogger{})
+ } else {
+ engine.SetLogger(NewXormLogger(log.LvlInfo, log.New("sqlstore.xorm")))
+ engine.ShowSQL(true)
+ engine.ShowExecTime(true)
+ }
}
return engine, nil
}
@@ -190,12 +194,12 @@ func LoadConfig() {
DbCfg.Host = sec.Key("host").String()
DbCfg.Name = sec.Key("name").String()
DbCfg.User = sec.Key("user").String()
- DbCfg.MaxOpenConn = sec.Key("max_open_conn").MustInt(0)
- DbCfg.MaxIdleConn = sec.Key("max_idle_conn").MustInt(0)
if len(DbCfg.Pwd) == 0 {
DbCfg.Pwd = sec.Key("password").String()
}
}
+ DbCfg.MaxOpenConn = sec.Key("max_open_conn").MustInt(0)
+ DbCfg.MaxIdleConn = sec.Key("max_idle_conn").MustInt(0)
if DbCfg.Type == "sqlite3" {
UseSQLite3 = true