防止Sequelize记录器包含数据库凭据

时间:2017-09-20 16:59:49

标签: javascript node.js sequelize.js bunyan

我在Sequelize版本4.4.2中注意到日志信息在创建模型时包含数据库凭据。

如果您希望在生产环境中使用查询信息的日志来审核查询或调试错误,则会出现问题。这是我的续集设置:

import Sequelize from 'sequelize';
import { log } from './plugins';

const createConnection = () => new Sequelize(
    process.env.POSTGRES_DB,
    process.env.POSTGRES_USER,
    process.env.POSTGRES_PASSWORD,
    {
        host: process.env.SERVER_POSTGRES_HOST,
        port: process.env.SERVER_POSTGRES_PORT,
        dialect: 'postgres',
        logging: log.trace.bind(log)
});

const connection = createConnection();

编辑:

它似乎与我正在以自己的方式连接自定义记录器直接相关。它将配置对象传递给记录器,其中包括sequelize配置,该配置还包括数据库凭据。依赖console.log不会导致问题。

1 个答案:

答案 0 :(得分:0)

日志记录配置应为

logging: (msg) => logger.trace(msg)

这只会传递msg信息,而不会传递Sequelize配置。 见Issue 7821