Winston: JSON рдХреЗ рд▓рд┐рдП рд╡реГрддреНрддрд╛рдХрд╛рд░ рд╕рдВрд░рдЪрдирд╛: рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдирд╡ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: winstonjs/winston

рдХреЛрдб:

const winston = require('winston');

const sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
    host: config.db.host,
    dialect: config.db.dialect,
    logging: winston.info // Not work it
});

рд╕рдВрд╕реНрдХрд░рдг:

winston: 3.0.0-rc1
sequelize: 4.22.2
mysql2: 1.4.2

рддреНрд░реБрдЯрд┐ рд╕реНрдЯреИрдХ:

Unhandled rejection TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at Format.transform (/demo/node_modules/logform/json.js:13:24)
    at DerivedLogger._transform (/demo/node_modules/winston/lib/winston/logger.js:218:25)
    at DerivedLogger.Transform._read (_stream_transform.js:167:10)
    at DerivedLogger.Transform._write (_stream_transform.js:155:12)
    at doWrite (_stream_writable.js:331:12)
    at writeOrBuffer (_stream_writable.js:317:5)
    at DerivedLogger.Writable.write (_stream_writable.js:243:11)
    at DerivedLogger.log (/demo/node_modules/winston/lib/winston/logger.js:174:8)
    at DerivedLogger.(anonymous function) [as info] (/demo/node_modules/winston/lib/winston/create-logger.js:54:16)
    at winston.(anonymous function) (/demo/node_modules/winston/lib/winston.js:84:34)
    at Sequelize.log (/demo/node_modules/sequelize/lib/sequelize.js:1062:23)
    at Query.run (/demo/node_modules/sequelize/lib/dialects/mysql/query.js:39:22)
    at retry (/demo/node_modules/sequelize/lib/sequelize.js:543:32)
    at /demo/node_modules/retry-as-promised/index.js:39:21
    at Promise._execute (/demo/node_modules/bluebird/js/release/debuggability.js:300:9)
    at Promise._resolveFromExecutor (/demo/node_modules/bluebird/js/release/promise.js:483:18)
    at new Promise (/demo/node_modules/bluebird/js/release/promise.js:79:10)
    at retryAsPromised (/demo/node_modules/retry-as-promised/index.js:29:10)
    at Promise.try.then.connection (/demo/node_modules/sequelize/lib/sequelize.js:543:14)
    at tryCatcher (/demo/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/demo/node_modules/bluebird/js/release/promise.js:512:31)

рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд▓реНрдк
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╡реГрддреНрддрд╛рдХрд╛рд░-json
рдХрд╛ рдЙрджрд╛рд╣рд░рдг
https://github.com/winstonjs/logform/blob/master/json.js#L13

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╕реАрдХреНрд╡рд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рди рдХрд┐ рд╡рд┐рдВрд╕реНрдЯрди рд╕реЗред
рд╕реАрдХреНрд╡рд▓ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдПред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ, рдПрдХ рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рддрд░реНрдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдФрд░ рдХреБрдЫ рдЕрдиреБрдХреНрд░рдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдерд╛)ред рд╡рд┐рдВрд╕реНрдЯрди рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬреЛ рд▓реЙрдЧ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрд╕реНрдЯрди рд▓реЙрдЧ рдХреЙрд▓ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

const winston = require('winston');

const sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
    host: config.db.host,
    dialect: config.db.dialect,
    logging: function(sql, sequelizeObject) {
        winston.info(sql); // Not work it
    }
});

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╕реАрдХреНрд╡рд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рди рдХрд┐ рд╡рд┐рдВрд╕реНрдЯрди рд╕реЗред
рд╕реАрдХреНрд╡рд▓ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдПред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ, рдПрдХ рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рддрд░реНрдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдФрд░ рдХреБрдЫ рдЕрдиреБрдХреНрд░рдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдерд╛)ред рд╡рд┐рдВрд╕реНрдЯрди рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬреЛ рд▓реЙрдЧ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрд╕реНрдЯрди рд▓реЙрдЧ рдХреЙрд▓ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

const winston = require('winston');

const sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
    host: config.db.host,
    dialect: config.db.dialect,
    logging: function(sql, sequelizeObject) {
        winston.info(sql); // Not work it
    }
});

рдзрдиреНрдпрд╡рд╛рдж @matuszeman!

рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рдЧреБрдЪреНрдЫрд╛ @matuszeman , рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рд┐рд░ рдЦреБрдЬрд▓рд╛ рд░рд╣рд╛ рдерд╛!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕