복붙노트

[MONGODB] 응용 프로그램에서 불을 몽구스 모든 쿼리를 기록

MONGODB

응용 프로그램에서 불을 몽구스 모든 쿼리를 기록

나는 응용 프로그램 NodeJS와 MongoDB를 사용하여를 사용하여이있다. 나는 ODM를위한 몽구스를 사용했다. 지금은 전체 응용 프로그램 중 화재 몽구스 모든 쿼리를 기록합니다.

이 어떻게 기록 하는가?

해결법

  1. ==============================

    1.당신과 같이 디버그 모드를 활성화 할 수 있습니다 :

    당신과 같이 디버그 모드를 활성화 할 수 있습니다 :

    mongoose.set('debug', true);
    

    또는 자신의 디버그 콜백을 추가 :

    mongoose.set('debug', function (coll, method, query, doc [, options]) {
     //do your thing
    });
    

    이것은 콘솔에 모든 실행 수집 방법과 인수를 기록합니다.

  2. ==============================

    2.나는이 디버그 및 추적 쿼리에 대한 옵션입니다 노드 번연을 사용하고 있습니다 (다른 사람을 도움이 될 수 있습니다)

    나는이 디버그 및 추적 쿼리에 대한 옵션입니다 노드 번연을 사용하고 있습니다 (다른 사람을 도움이 될 수 있습니다)

    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
        });
    });
    
  3. ==============================

    3.또한 디버그 로거 매개 변수를 설정할 수 있습니다 :

    또한 디버그 로거 매개 변수를 설정할 수 있습니다 :

    node index.js DEBUG=mquery
    

    그러나 이것은 단지, 쿼리를 기록합니다 삽입 또는 업데이트 문이 없습니다.

  4. ==============================

    4.다음과 같은 형식을 사용할 수 있습니다 :

    다음과 같은 형식을 사용할 수 있습니다 :

    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);
    });
    
  5. from https://stackoverflow.com/questions/18762264/log-all-queries-that-mongoose-fire-in-the-application by cc-by-sa and MIT license