2016-02-12 9 views
6

पर काम नहीं कर रहा है मेरे पास रास्पबेरी जेसी ओएस का उपयोग कर रास्पबेरी पीआई 2 पर चल रहा एक आईओटी प्रोजेक्ट है।लॉग इन विंस्टन के माध्यम से पिं

यह एक वेब सर्वर है जो नोडजेएस (v4) में चल रहा है और मैं लॉन्ग्ली की लॉगिंग सेवा पर लॉग इन करने के लिए विंस्टन का उपयोग कर रहा हूं। टर्मिनल से npm start के माध्यम से परियोजना को लात मारने पर सभी काम अच्छी तरह से काम करते हैं (जब 'पीआई' या सूडो-एस के माध्यम से चलते हैं)। हालांकि, जब प्रोजेक्ट बूट पर शुरू होता है, तो लॉगिंग काम नहीं करती है और मैं क्यों काम नहीं कर सकता।

बूट पर प्रोजेक्ट शुरू करने के लिए मैंने एक etc/init.d स्क्रिप्ट बनाई है। परियोजना शुरू होती है और यातायात की सेवा करती है, लॉगिंग के अलावा सबकुछ बढ़िया काम करता है। मुझे कोई त्रुटि नहीं दिखाई दे रही है (हालांकि लॉगिंग नहीं होने में मदद नहीं करता है)। https://www.npmjs.com/package/winston और विंस्टन-loggly:

/usr/bin/node /var/www/curtains/server.js 

मैं विंस्टन उपयोग कर रहा हूँ: यह कैसे मैं अपने etc/init.d स्क्रिप्ट अंदर से मेरी परियोजना शुरू है https://www.npmjs.com/package/winston-loggly

कोई विचार क्यों, जब बूटअप पर प्रक्रिया शुरू होती है तो लॉगिंग काम नहीं करती है? के रूप में अनुरोध

जोड़ना विंस्टन प्रवर्तन कोड:

var winston = require('winston'); 
require('winston-loggly'); 

winston.add(winston.transports.Loggly, { 
    token: "<snip>", 
    subdomain: "<snip>", 
    tags: ["tag", ip.address()], 
    json:true 
}); 

winston.log('info',"Server.js starting up"); 
+0

क्या आपके लॉग कॉन्फ़िगरेशन में आपके कोई सापेक्ष पथ हैं? साथ ही 'server.js' से अपने विंस्टन प्रारंभिकरण को देखना उपयोगी होगा, क्या आप यह कोड जोड़ सकते हैं? –

+0

server.js से प्रारंभिक कोड जोड़ा गया - इसमें कोई लॉग कॉन्फ़िगरेशन नहीं है जिसे मैं जानता हूं। – ConfusedNoob

उत्तर

2

जब आप npm start चलाने के लिए, नोड एक स्क्रिप्ट के लिए दिखेगा अपने package.json फ़ाइल में वस्तु, और start कुंजी से संबद्ध आदेशों को चलाने के।

अपने init.d स्क्रिप्ट में आप npm start नहीं चल रहे हैं, लेकिन इसके बजाय सिर्फ नोड चल रहा है और पहले तर्क के रूप में अपने server.js फ़ाइल गुजर (जो कि फ़ाइल को चलाने जाएगा)।

सबसे अधिक संभावना है कि आपके लॉगिंग को सही तरीके से चलाने के लिए आपके start स्क्रिप्ट में कुछ आवश्यक है। इस समस्या के समाधान के लिए, आप कर सकते हैं:

    अपनी परियोजना जड़ तक
  • अपने init.d स्क्रिप्ट में, cwd और फिर npm start चलाते हैं।
  • अपने package.json में देखें कि यह देखने के लिए कि आपकी start स्क्रिप्ट क्या कर रही है, और अपने init.d स्क्रिप्ट के बराबर जोड़ें।
+0

अफसोस की बात है कि इससे कोई फर्क नहीं पड़ता। मैंने अपनी स्थानीय परियोजना को उसी तरह से चलाने की भी कोशिश की, उदाहरण के लिए '/ usr/local/bin/node/उपयोगकर्ता/me/दस्तावेज़/प्रोजेक्ट/server.js' और यह ठीक काम करता है, अपेक्षित के रूप में लॉगिंग। मेरे पैकेज.जेसन में कोई भी 'स्टार्ट' स्क्रिप्ट नहीं है - महान सुझाव, लेकिन ऐसा नहीं लगता कि यह गलत है। – ConfusedNoob

+0

मैंने कार्य निर्देशिका और एनपीएम शुरू करने के लिए /etc/init.d स्क्रिप्ट को अद्यतन किया। मैंने फिर स्क्रिप्ट को मैन्युअल रूप से चलाने के लिए 'सुडो-एस' का उपयोग किया, उदाहरण के लिए '/etc/init.d/myscript प्रारंभ करें '। यह बहुत अच्छा काम करता है, लॉगिंग अच्छा है। हालांकि, जब स्क्रिप्ट रीबूट पर निष्पादित होती है ... कुछ भी नहीं :( – ConfusedNoob

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