2013-05-11 9 views
7

प्रबंधित करने वाले संदेशों को डीबग करें मेरा जेएस कोड आम तौर पर console.log() डीबग संदेशों से भरा होता है। कभी-कभी उन्हें बंद करना या उनमें से कुछ हिस्से को बंद करना बेहतर होता है।Console.log

उदाहरण के लिए, कुछ स्थिरताओं द्वारा परिभाषित स्थितियों के साथ कुछ फ़ंक्शन में console.log() कथन लपेट सकता है। क्या यह डीबग आउटपुट का प्रबंधन करने का सबसे अच्छा तरीका है या अधिक सुरुचिपूर्ण विकल्प हैं?

उत्तर

4

एक समारोह में console.log लपेटकर अच्छी तरह से काम करता है। लेकिन ध्यान दें कि जावास्क्रिप्ट के लिए वहां बहुत सारी लॉगिंग सुविधाएं भी हैं। "जेएस लॉगर" पर एक छोटा सा Google उपयुक्त परिणाम प्राप्त कर सकता है।

+0

कृतज्ञतापूर्वक सराहना करें! पहले से ही कुछ सामान मिल गया है! :) – zavg

2

JS logger लॉग संदेश स्तर और कई पूर्वनिर्धारित लॉगिंग स्तर (DEBUG, INFO, WARN, ERROR) के लिए flixible सेटिंग्स के साथ काफी अच्छा और हल्का उपकरण है।

5

Bunyan लॉगिंग मॉड्यूल Node.js

उदाहरण कोड hi.js के लिए लोकप्रिय है:

var bunyan = require('bunyan'); 
var log = bunyan.createLogger({name: 'myapp'}); 
log.info('hi'); 
log.warn({lang: 'fr'}, 'au revoir'); 

आउटपुट:

{"name":"myapp","hostname":"localhost","pid":40161,"level":30,"msg":"hi","time":"2013-01- 04T18:46:23.851Z","v":0} 
{"name":"myapp","hostname":"localhost","pid":40161,"level":40,"lang":"fr","msg":"au revoir","time":"2013-01-04T18:46:23.853Z","v":0} 

तो आप कमांड लाइन से छानने कर सकते हैं:

$ node hi.js | bunyan -l warn 
[2013-01-04T19:08:37.182Z] WARN: myapp/40353 on localhost: au revoir (lang=fr) 
3

आप Node.js उपयोग कर रहे हैं तो debug अत्यंत प्रभावी है के रूप में एक विकल्प (console.log करने के लिए)

यह मूल रूप से console.log() को छोड़कर आप इसे डीबग के साथ आदेश पंक्ति पर सक्षम कर सकते हैं के लिए एक विकल्प है पर्यावरण परिवर्तनीय इस बात पर आधारित है कि आपने इसे प्रत्येक फ़ाइल में कैसे प्रारंभ किया है।

चलो कहते हैं कि मैं अपने index.js फ़ाइल से संदर्भित फ़ाइलों के एक जोड़े के साथ एक परियोजना करते हैं:

one.js

var debug = require('debug')('one-one'); 

var func = function() { 
    debug('func'); 
} 

two.js

var debug = require('debug')('one-two'); 

var func = function() { 
    debug('func'); 
} 

आपने पहली फ़ाइल में "एक-एक" नाम और दूसरी फ़ाइल में "एक-दो" नाम से डीबग प्रारंभ किया गया।

कमांड लाइन पर मैं उन्हें इस तरह चला सकते हैं:

node index.js 

परिणाम: कोई डिबग आउटपुट। हालांकि, अगर मैं इसे इस तरह चलाएँ:

DEBUG=* node index.js 

दोनों डिबग बयान लिखा जाएगा, हालांकि, विभिन्न रंगों में और डिबग नाम (एक-एक या एक-दो) के साथ तो मैं बता सकता हूँ जो फाइल से वे आए थे।

अब मान लें कि आप इसे थोड़ा और कम करना चाहते हैं। आप चला सकते हैं:

DEBUG = * - दो नोड इंडेक्स।js

केवल नाम के अंत या index.js

डीबग = एक- * नोड के लिए पर डिबग के साथ "-two" की स्थापना की गई है कि से उत्पादन प्राप्त करने के लिए "एक-"

से शुरू होने वाली सबकुछ प्राप्त करें आप यह भी कह सकते हैं कि आप सब कुछ चाहते हैं, या चीजों का एक सेट, या पैटर्न या सेट को बाहर कर सकते हैं। कुछ बाहर करने के लिए आप, एक पानी का छींटा के साथ पूर्व में होना एक उदाहरण:

डीबग = एक *, बंदर *, - बंदर: केला, -elephant, -chimp: * नोड

यह index.js ": केले बंदर", या "हाथी" या "चिम्पांजी:" के साथ शुरू:

आप तो के अलावा सब कुछ को बाहर करना चाहता है तो "एक" या "बंदर" और कुछ भी बाहर निकालने के कहा जाता है के साथ शुरू सब कुछ शामिल होंगे

DEBUG = *, - पॉटर n1, -pattern2 node index.js

संबंधित मुद्दे