অ্যাপ্লিকেশনটিতে মংগুসে আগুনের সব প্রশ্নের লগ করুন


89

নোডেজ এবং মংডব ব্যবহার করে আমার কাছে অ্যাপ্লিকেশন রয়েছে। আমি ওডিএম এর জন্য মঙ্গুজ ব্যবহার করেছি। এখন আমি সমস্ত অ্যাপ্লিকেশন চলাকালীন যে প্রশ্নগুলিতে আগুন লাগায় তা লগ করতে চাই।

এই লগ কিভাবে?

উত্তর:


200

আপনি এর মতো ডিবাগ মোড সক্ষম করতে পারেন:

mongoose.set('debug', true);

বা আপনার নিজস্ব ডিবাগ কলব্যাক যোগ করুন:

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

এটি কনসোলে সমস্ত সম্পাদিত সংগ্রহের পদ্ধতি এবং তাদের তর্কগুলি লগ করবে will


4
মংগুজ কিভাবে লগ ফর্ম্যাট করে। IE আমি উইনস্টন লগ করতে দ্বিতীয় বিকল্পটি ব্যবহার করতে চাই। আমি মঙ্গুজ লগের ফর্ম্যাটটি পছন্দ করি এবং আমি আমার লগ ডাব্লু / উইনস্টনকে একইভাবে ফর্ম্যাট করব।
হারিয়েছে ট্রান্সলেশন lation

12

আমি নোড বুনিয়ান ব্যবহার করছি, এটি ডিবাগ এবং অনুসন্ধানগুলি ট্র্যাক করার বিকল্প (অন্য কাউকে সহায়তা করতে পারে)

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
    });
});

আমাকে কোয়ালিটি কার্যকর করা হয়েছে সেখান থেকে ফাইলের নাম এবং লাইন নম্বরটি লগ করতে হবে। যাইহোক আমি কি এটা করতে পারি?
শ্রুতি গোयल

12

আপনি নিম্নলিখিত ফর্ম্যাটটি ব্যবহার করতে পারেন:

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);
});

4
ভাল লাগল তবে কীভাবে কেবল
মানগুলিতে

আপনি রঙিন করতে চক এনপিএম মডিউল ব্যবহার করতে পারেন, যে কোনও মান আপনি রঙিন করতে চানlog(` CPU: ${chalk.red('90%')} RAM: ${chalk.green('40%')} DISK: ${chalk.yellow('70%')} `);
ভিথাল রেড্ডি

3

আপনি ডিবাগ লগার পরামিতিও সেট করতে পারেন:

node index.js DEBUG=mquery

কিন্তু এই শুধুমাত্র লগ-ইন করবে প্রশ্নের , সন্নিবেশ বা আপডেট বিবৃতি নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.