我有一个SaveRequest方法,它和http.Request
然后,据说,将其保存(现在只是路径)的Postgres数据库:转到胡德保存到Postgres的,但不知道在哪里
func (logger *PostgresLogger) SaveRequest(req *http.Request) {
os.Stdout.Write([]byte("Saving to PGDB\n"))
request := db.Requests { Path: req.URL.Path }
transaction := logger.dbConnection.Begin()
Id, saveError := transaction.Save(&request)
if saveError != nil {
panic(saveError)
}
os.Stdout.Write([]byte(fmt.Sprintf("%v\n", Id)))
transactionError := logger.dbConnection.Commit()
if transactionError != nil {
panic(transactionError)
}
}
这dbConnection
来自加载Hood配置文件:
func New(prefix string) (PostgresLogger) {
dbConnection, err := hood.Load("/Users/ls/Dropbox/programming/go/src/postgres_logger/db/config.json", "development")
if err != nil {
panic(err)
}
return PostgresLogger{ prefix: prefix, dbConnection: dbConnection }
}
很酷。所以,当我开始反向代理,并要求它保存传入的请求,我看到这(样品中,其中日志由RVSPRXY前缀):
Saving to PGDB
56
RVSPRXY (1368315177148901322):
[::1]:51142 GET /css/editor.css
Saving to PGDB
RVSPRXY (1368315177149851787):
[::1]:51143 GET /js/handlebars.min.js
Saving to PGDB
RVSPRXY (1368315177150164615):
[::1]:51140 GET /css/mercury.bundle.css
Saving to PGDB
RVSPRXY (1368315177150358938):
[::1]:51141 GET /css/mercury_regions.bundle.css
Saving to PGDB
RVSPRXY (1368315177150776986):
[::1]:51144 GET /js/jquery-2.0.0.min.js
Saving to PGDB
57
58
59
60
所以我们可以看到它递增ID从保存返回,但我查看了logging_development数据库,并没有记录。
停止并重新启动服务器会继续增加它停止的位置的ID,所以它看起来好像实际上正在保存,但在哪里?
更新
这里是开发配置:
{
"development": {
"driver": "postgres",
"source": "user=logging dbname=logging_development sslmode=disable"
}
}
有些什么样的pgAdmin显示连接:
5289 logging logging_development 2013-05-11 17:54:48.700467-06 127.0.0.1:51403 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5290 logging logging_development 2013-05-11 17:54:48.746065-06 127.0.0.1:51414 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5291 logging logging_development 2013-05-11 17:54:48.747876-06 127.0.0.1:51415 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5292 logging logging_development 2013-05-11 17:54:48.748086-06 127.0.0.1:51416 INSERT INTO "requests" ("path", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
5293 logging logging_development 2013-05-11 17:54:48.74866-06
编辑:修正了检查不正确的错误(不是问题的原因)
1)应该在哪里数据根据config.json去? 2)可以使用pgadmin来检查客户端连接的数据库以及他们实际执行的查询。 – fvu 2013-05-11 23:52:04
我添加了配置文件。它应该去logging_development,并且服务器的统计数据似乎表明这是事实。 – Chris 2013-05-12 00:02:41
'os.Stdout.Write([] byte(“Saving to PGDB \ n”))''可以更好地用作'fmt.Println(“Saving to PGDB”)'btw – 2013-05-12 02:16:45