किसी फ़ाइल के कंसोल.लॉग (ऑब्जेक्ट) के आउटपुट को कैसे बचाया जाए?


240

मैंने प्रयोग करने की कोशिश की JSON.stringify(object) , लेकिन यह पूरी संरचना और पदानुक्रम पर नहीं जाती है।

दूसरी ओर console.log(object)वह करता है, लेकिन मैं इसे बचा नहीं सकता।

में console.logउत्पादन मैं एक सभी बच्चों द्वारा एक विस्तार कर सकते हैं और चयन और कॉपी / पेस्ट लेकिन संरचना है कि के लिए बड़ा है।



क्या आप विकास के उद्देश्यों के लिए ब्राउज़र से कंसोल.लॉग को बचाने की कोशिश कर रहे हैं? अगर आपने समझाया कि आपका अंतिम लक्ष्य क्या है, तो यह मदद कर सकता है।
ट्रैविस

1
@MichaelS मुझे लॉग फ़ाइल में ऑब्जेक्ट नहीं मिला।
एडुआर्ड फ्लोरिनेसस्कु

@travis मैं JSON को एक वस्तु निर्यात करना चाहता हूं, लेकिन सभी पदानुक्रम, उसके गुण और उसके गुणों के गुण भी। मैं व्यावहारिक रूप से कार्यों के कार्यान्वयन को छोड़कर किसी वस्तु का "इंटरफ़ेस" प्राप्त करना चाहता हूं।
एडुआर्ड फ्लोरिंसक्यू

2
@ मिचेल्स, वे सवाल पूरे लॉग को बचाने के बारे में हैं, यह सवाल किसी एकल ऑब्जेक्ट को बचाने के बारे में है। वे मेरी बात से अलग हैं।
जेम्स मैकमोहन

जवाबों:


307

अपडेट: अब आप सिर्फ राइट क्लिक कर सकते हैं

दायाँ क्लिक करें> लॉग इन संदेशों को किसी फ़ाइल में सहेजने के लिए कंसोल पैनल में सहेजें।

मूल उत्तर:

आप इस devtools स्निपेट का उपयोग नीचे दिया गया कंसोल कंसोल बनाने के लिए कर सकते हैं। यह इनपुट से FileBlob बनाता है, और फिर स्वचालित रूप से इसे डाउनलोड करता है।

(function(console){

console.save = function(data, filename){

    if(!data) {
        console.error('Console.save: No data')
        return;
    }

    if(!filename) filename = 'console.json'

    if(typeof data === "object"){
        data = JSON.stringify(data, undefined, 4)
    }

    var blob = new Blob([data], {type: 'text/json'}),
        e    = document.createEvent('MouseEvents'),
        a    = document.createElement('a')

    a.download = filename
    a.href = window.URL.createObjectURL(blob)
    a.dataset.downloadurl =  ['text/json', a.download, a.href].join(':')
    e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
    a.dispatchEvent(e)
 }
})(console)

स्रोत: http://bgrins.github.io/devtools-snippets/#console-save


2
मैं उन लोगों में से नहीं हूं जो "थैंक्स" को हर जगह रोकते हैं जब तक कि उत्तर 'धन्यवाद' से बचने के लिए अवरुद्ध न हो जाए। लेकिन धन्यवाद। एक विस्तार का निर्माण किया।
लीन पेलेटियर

14
इस रूप में सहेजें ... सुविधा वास्तव में मदद नहीं की। यह पूरी JSON ऑब्जेक्ट को नहीं बचाता है (मेरे मामले में, मेरे पास ऑब्जेक्ट्स की एक सरणी थी, ऑब्जेक्ट्स गुण आउटपुट फ़ाइल में निर्यात नहीं किए गए थे)। लेकिन उम्मीद है, आपके द्वारा चिपकाए गए अच्छे पुराने देवतुल-स्निपेट एक आकर्षण की तरह काम करते हैं। धन्यवाद
एम Kejji

1
अगर काम के रूप में नहीं बचा है, तो यह एक प्रतिगमन है। आपको crbug.com पर एक बग दर्ज करना चाहिए
पैट्रिक

1
@ ishandutta2007 आपको किसी भी स्निपेट को डाउनलोड नहीं करना चाहिए - यह अब कंसोल में बनाया गया है।
पैट्रिक

10
राइट क्लिक ऑब्जेक्ट की गहरी बचत नहीं करेगा।
user1032531

246

यदि आपके पास कोई वस्तु लॉग इन है:

  • कंसोल में ऑब्जेक्ट पर राइट क्लिक करें और क्लिक करें Store as a global variable
  • आउटपुट कुछ इस तरह होगा temp1
  • कंसोल में टाइप करें copy(temp1)
  • अपने पसंदीदा टेक्स्ट एडिटर पर पेस्ट करें

1
मैंने यह भी पाया कि इसे konklone.io/json में पेस्ट करने से आप जल्दी से इसे CSV फ़ाइल में और एक्सेल से वहाँ से प्राप्त कर सकते हैं।
पेटेव

9
मुझे केवल [ऑब्जेक्ट ऑब्जेक्ट]
नॉर्बिड्रक

1
कंसोल "अपरिभाषित" कहता है, लेकिन इसका मतलब यह नहीं है कि अगर असफल रहा। यह अभी भी इसे क्लिपबोर्ड पर कॉपी करता है :)
डीन

1
भयानक समाधान। बहुत बहुत धन्यवाद!
बेन रॉन्ड्यू

1
अब तक का सबसे सरल और सबसे विश्वसनीय उपाय!
क्रिस बी।

130

आप Chrome DevTools यूटिलिटीज API कमांड का उपयोग कर सकते हैंcopy() क्लिपबोर्ड पर निर्दिष्ट ऑब्जेक्ट के स्ट्रिंग प्रतिनिधित्व को कॉपी करने के लिए ।

यदि आपके पास बहुत सारी वस्तुएं हैं तो आप वास्तव में अपनी सभी वस्तुओं को JSON.stringify () कर सकते हैं और उन्हें एक स्ट्रिंग में जोड़ते रह सकते हैं। अब copy()संपूर्ण स्ट्रिंग को क्लिपबोर्ड पर कॉपी करने के लिए विधि का उपयोग करें ।


13
उपयोग: कॉपी (ऑब्जेक्ट)
एंटोनी

नोट: आपrequire("util").format(...)JSON.stringify() एक के बाद एक लगाने के बजाय उपयोग कर सकते हैंNPM पर मॉड्यूल दोनों Node.js और वेब ब्राउज़र पर काम करता है। util
Константин Ван

2
यदि आप प्रतिलिपि (ऑब्जेक्ट) टाइप करते हैं और यह 'अपरिभाषित' लौटा है, तो यह वास्तव में सफलता है। ऑब्जेक्ट अब आपके क्लिपबोर्ड में है, और इसे चिपकाया जा सकता है।
डीन

7

एक ओपन-सोर्स जावास्क्रिप्ट प्लगइन है जो कि बस करता है - debugout.js

Debugout.js रिकॉर्ड्स और कंसोल को सहेजते हैं। इसलिए आपके एप्लिकेशन उन तक पहुंच सकते हैं। पूरा खुलासा, मैंने इसे लिखा था। यह विभिन्न प्रकारों को उचित रूप से प्रारूपित करता है, नेस्टेड ऑब्जेक्ट्स और सरणियों को संभाल सकता है, और वैकल्पिक रूप से प्रत्येक लॉग के बगल में टाइमस्टैम्प लगा सकता है। यह एक स्थान पर लाइव-लॉगिंग को भी दर्शाता है।


मुझे एक त्रुटि मिल रही है -SyntaxError: export declarations may only appear at top level of a module --> debugout.js:9
सेनुर डिसनायके

@SenuraDissanayake अब कोशिश करो - मुझे किसी के पीआर को वापस करना पड़ा जिसे मैंने परीक्षण नहीं किया: /
अकार्बनिक

3

कंसोल पर राइट क्लिक करें .. इसके रूप में सहेजें पर क्लिक करें .. यह सरल है .. आपको एक आउटपुट टेक्स्ट फ़ाइल मिलेगी


बस त्रुटि के बिना किसी भी संकेत के बिना बनाम लॉग इन करें।
पॉलियस लेकिस


2

एक और ओपन-सोर्स टूल है जो आपको console.logअपने सर्वर पर एक फ़ाइल में सभी आउटपुट को बचाने की अनुमति देता है - जेएस लॉगफ्लश (प्लग)।

JS LogFlush एक एकीकृत जावास्क्रिप्ट लॉगिंग समाधान है जिसमें शामिल हैं:

  • क्रॉस-ब्राउज़र यूआई-कम प्रतिस्थापन के कंसोल.लॉग - क्लाइंट की तरफ।
  • लॉग भंडारण प्रणाली - सर्वर की ओर।

डेमो


2

यह वास्तव में पार्टी के लिए देर हो चुकी है, लेकिन शायद यह किसी की मदद करेगा। मेरा समाधान ओपी को समस्याग्रस्त के रूप में वर्णित के समान है, लेकिन शायद यह एक ऐसी विशेषता है जो क्रोम अब प्रदान करता है, लेकिन तब नहीं। मैंने कंसोल पर ऑब्जेक्ट के लिखे जाने के बाद .log फ़ाइल को राइट-क्लिक करने और सहेजने की कोशिश की, लेकिन मुझे जो कुछ दिया गया वह एक टेक्स्ट फ़ाइल थी:

कंसोल.जेएस: 230 हो गया: एरे (50000) [0… 9999] [10000… 19999] [20000… 29999] [30000… 39999] [40000… 49999] लंबाई: 50000__propro__: Array (0)

जो किसी के काम का नहीं था।

मैंने जो काम किया console.log(data), वह कोड में मिल रहा था , उस पर एक ब्रेकपॉइंट गिरा दिया और फिर JSON.Stringify(data)कंसोल में टाइप किया जिसने पूरे ऑब्जेक्ट को JSON स्ट्रिंग के रूप में प्रदर्शित किया और क्रोम कंसोल वास्तव में आपको इसे कॉपी करने के लिए एक बटन देता है । फिर एक टेक्स्ट एडिटर में पेस्ट करें और आपका JSON है

यहां छवि विवरण दर्ज करें


यह कहता है कि अंत में लंबे पाठ को छोटा कर दिया गया था , यदि आपकी प्रेस कॉपी इसे पूरे 20.6MB की प्रतिलिपि बनाती है?
एडुआर्ड फ्लोरिनेसस्कु

1
@EduardFlorinescu हां, सबकुछ
एडम हे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.