如何使用sails在控制台日志中显示查询?

时间:2014-03-14 09:34:47

标签: node.js sails.js waterline

我正在使用sails和mysql启动一个项目,我不知道如何配置它以显示在控制台中执行的查询。

8 个答案:

答案 0 :(得分:22)

mysql适配器有一个调试变量LOG_QUERIES,用于将所有查询发送到控制台。

LOG_QUERIES=true node myFile.js

答案 1 :(得分:12)

不幸的是,虽然已经请求了该功能,但此时Sails不可能这样做。最好的办法是检查数据库提供的日志文件:

Postgres:How to log PostgreSQL queries?

MySQL:Log all queries in mysql

MongoDB:MongoDB logging all queries

答案 2 :(得分:2)

如果您使用Postgresql.app在Mac OS上进行Sails.js开发,则可以按如下方式启用所有查询记录:

在新的终端中,修改~/Library/Application Support/Postgres/var/postgresql.conf并设置:

logging_collector = on
log_directory = 'pg_log'
log_statement = 'all'

然后重新启动Postgresql.app(点击菜单栏图标,退出,然后使用Spotlight重新启动)。

然后用以下内容尾随日志:

tail -F ~/Library/Application\ Support/Postgres/var/pg_log/postgresql-2014-10-30_104957.log 

您必须找到最新的postgresql- * log to tail并替换上面的内容。

答案 3 :(得分:2)

我的回答可能很晚了,但是刚刚找到了可以帮助人们的解决方案 帆版本= 0.12.14

要记录需求,请执行以下操作

导航到 node_modules \ sails-mysql \ lib \ adapter.js

找到“ 日志”的变量声明

然后将“ process.env.LOG_QUERIES ”更改为“ sails.config.LOG_QUERIES ””

导航到

[sails root] / config / env / [开发或生产] .js

添加

LOG_QUERIES = 'true',

注意:-请记住在 true

中输入“或”

答案 4 :(得分:1)

或者将日志添加到sql模块。

在mysql中这是:

working_dir/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js

function **createQuery** (33)

答案 5 :(得分:1)

此解决方案适用于帆帆> = 1.1。

sails-mysql(自v1.0.0起)适配器使用machinepack-mysql驱动程序,该驱动程序将查询记录到debug。因此,记录所有本机查询所需要做的就是启用调试标志:

DEBUG=query node app.js

答案 6 :(得分:0)

放入

  

LOG_QUERIES ='真'

扬帆起航命令

答案 7 :(得分:0)

只需将其添加到您的数据存储区

调试:[“ ComQueryPacket”]

config / datastores.js应该看起来像这样

module.exports.datastores = {
  default: {
    adapter: 'sails-mysql',
    user: '*****',
    password: "****",
    host: '*****',
    database: '****',
    debug: ["ComQueryPacket"]
  }
}