Nodejs ve mongodb kullanan uygulamam var. ODM için firavun faresi kullandım. Şimdi tüm uygulama boyunca firavun faresi yanan tüm sorguları günlüğe kaydetmek istiyorum.
Bunlar nasıl kaydedilir?
Nodejs ve mongodb kullanan uygulamam var. ODM için firavun faresi kullandım. Şimdi tüm uygulama boyunca firavun faresi yanan tüm sorguları günlüğe kaydetmek istiyorum.
Bunlar nasıl kaydedilir?
Yanıtlar:
Hata ayıklama modunu şu şekilde etkinleştirebilirsiniz:
mongoose.set('debug', true);
veya kendi hata ayıklama geri çağrınızı ekleyin:
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
Bu, yürütülen tüm toplama yöntemlerini ve bunların argümanlarını konsola günlüğe kaydedecektir.
Bunyan düğümü kullanıyorum, bu sorgularda hata ayıklama ve izleme seçeneği (başka birine yardımcı olabilir)
function serializer(data) {
let query = JSON.stringify(data.query);
let options = JSON.stringify(data.options || {});
return `db.${data.coll}.${data.method}(${query}, ${options});`;
}
let log = bunyan.createLogger({
name: 'AppName',
src: false,
serializers: {
// ...
dbQuery: querySerializer
// ...
},
// ...
});
mongoose.set('debug', function(coll, method, query, doc, options) {
let set = {
coll: coll,
method: method,
query: query,
doc: doc,
options: options
};
log.info({
dbQuery: set
});
});
Aşağıdaki biçimi kullanabilirsiniz:
mongoose.set("debug", (collectionName, method, query, doc) => {
console.log(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
veya seçtiğiniz herhangi bir kaydedici:
mongoose.set("debug", (collectionName, method, query, doc) => {
logger(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
log(` CPU: ${chalk.red('90%')} RAM: ${chalk.green('40%')} DISK: ${chalk.yellow('70%')} `);