nodejs와 mongodb를 사용하는 응용 프로그램이 있습니다. ODM에 몽구스를 사용했습니다. 이제 전체 응용 프로그램에서 mongoose가 실행하는 모든 쿼리를 기록하고 싶습니다.
기록하는 방법?
답변
다음과 같이 디버그 모드를 활성화 할 수 있습니다.
mongoose.set('debug', true);
또는 자신의 디버그 콜백을 추가하십시오.
mongoose.set('debug', function (coll, method, query, doc [, options]) {
 //do your thing
});
실행 된 모든 수집 방법과 인수를 콘솔에 기록합니다.
답변
나는 노드 bunyan을 사용하고 있습니다. 이것은 쿼리를 디버그하고 추적하는 옵션입니다 (다른 사람에게 도움이 될 수 있음)
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
    });
});
답변
다음 형식을 사용할 수 있습니다.
mongoose.set("debug", (collectionName, method, query, doc) => {
    console.log(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
또는 원하는 다른 로거 :
mongoose.set("debug", (collectionName, method, query, doc) => {
    logger(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
답변
디버그 로거 매개 변수를 설정할 수도 있습니다.
node index.js DEBUG=mquery
그러나 이것은 쿼리를 기록 하고 삽입하거나 업데이트하지 않습니다.
답변
