একটি কনসোল.লগ (অবজেক্ট) এর আউটপুট কীভাবে সংরক্ষণ করবেন?


240

আমি চেষ্টা করার চেষ্টা করেছি JSON.stringify(object), কিন্তু এটি পুরো কাঠামো এবং শ্রেণিবিন্যাসের নীচে যায় না।

অন্যদিকে এটি console.log(object)করে তবে আমি এটি সংরক্ষণ করতে পারি না।

ইন console.logআউটপুট আমি এক সব শিশুদের এক প্রসারিত করতে পারেন এবং নির্বাচন করুন ও কপি / পেস্ট কিন্তু কাঠামোই জন্য বড় হয়।



আপনি কি উন্নয়ন উদ্দেশ্যে ব্রাউজার থেকে কনসোল.লগ সংরক্ষণ করার চেষ্টা করছেন? আপনার শেষ লক্ষ্যটি কী তা আপনি যদি ব্যাখ্যা করেন তবে এটি সহায়তা করতে পারে।
ট্র্যাভিস

1
@ মিশেলএস আমি লগ ফাইলে এই জিনিসটি পাইনি।
এডুয়ার্ড ফ্লোরিয়েন্সু

@ ট্র্যাভিস আমি জেএসএন-তে কোনও বস্তু রফতানি করতে চাই, তবে সমস্ত শ্রেণিবিন্যাস, তার সম্পত্তি এবং তার সম্পত্তিগুলির বৈশিষ্ট্য। আমি কার্যত কার্যকারিতা বাস্তবায়ন ব্যতীত কোনও বস্তুর "ইন্টারফেস" পেতে চাই।
এডুয়ার্ড ফ্লোরিয়েন্সু

2
@ মিশেল, এই প্রশ্নগুলি সম্পূর্ণ লগ সংরক্ষণ করার বিষয়ে, এই প্রশ্নটি একটি একক অবজেক্টটি সংরক্ষণ করার বিষয়ে। তারা আমার দৃষ্টিকোণ থেকে পৃথক।
জেমস ম্যাকমাহন

উত্তর:


307

আপডেট: আপনি এখন ঠিক ক্লিক করতে পারেন

লগ ইন করা বার্তাগুলি কোনও ফাইলে সংরক্ষণ করতে কনসোল প্যানেলে যেমন ডান ক্লিক করুন সেভ করুন।

আসল উত্তর:

আপনি কনসোল.স্যাভ পদ্ধতি তৈরি করতে নীচে প্রদর্শিত এই ডেভলগুলি স্নিপেট ব্যবহার করতে পারেন। এটি ইনপুট থেকে একটি ফাইলব্লব তৈরি করে এবং তারপরে এটি স্বয়ংক্রিয়ভাবে ডাউনলোড হয়।

(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 অবজেক্টটি সংরক্ষণ করে না (আমার ক্ষেত্রে, আমার কাছে একটি সামগ্রীর অ্যারে ছিল, আউটপুট ফাইলে অবজেক্টের বৈশিষ্ট্য রফতানি হয়নি)। তবে আশা করি, আপনি যে ভাল পুরানো দেবটোল-স্নিপেটটি পেস্ট করেছেন তা মোহন করার মতো কাজ করেছে। আপনাকে ধন্যবাদ
এম কেজজি

1
যদি সংরক্ষণ না করে কাজ করে তবে এটি একটি রিগ্রেশন। আপনার crbug.com এ একটি বাগ ফাইল করা উচিত
প্যাট্রিক

1
@ ishandutt2007 আপনার কোনও স্নিপেট ডাউনলোড করা উচিত নয় - এটি এখন কনসোলে নির্মিত হয়েছে।
প্যাট্রিক

10
রাইট ক্লিক ক্লিক করে বস্তুর গভীর সংরক্ষণ করবে না not
ব্যবহারকারী 1032531

246

যদি আপনার কোনও বস্তু লগড থাকে:

  • কনসোলের অবজেক্টটিতে ডান ক্লিক করুন এবং ক্লিক করুন Store as a global variable
  • আউটপুট কিছু হবে temp1
  • কনসোল টাইপ করুন copy(temp1)
  • আপনার প্রিয় পাঠ্য সম্পাদক এ পেস্ট করুন

1
আমি এটিও পেয়েছি যে এটিকে পেট করে কনক্লোন.ইও / জসসনে আপনি তাড়াতাড়ি এটিকে একটি সিএসভি ফাইলে এবং সেখান থেকে এক্সেলের মাধ্যমে পেতে পারেন।
পিটডাব্লু

9
আমি কেবল [অবজেক্ট অবজেক্ট]
নরবিদ্রাক

1
কনসোলটি "অপরিজ্ঞাত" বলেছেন, তবে এটি ব্যর্থ হয়েছে কিনা তার অর্থ নয়। এটি এখনও এটি ক্লিপবোর্ডে অনুলিপি করেছে :)
ডিন

1
দুর্দান্ত সমাধান। অনেক ধন্যবাদ!
বেন রোনডাউ

1
এতদূর সহজ এবং নির্ভরযোগ্য সমাধান!
ক্রিস বি।

130

ক্লিপবোর্ডে নির্দিষ্ট অবজেক্টের স্ট্রিং প্রতিনিধিত্ব অনুলিপি করার জন্য আপনি ক্রোম ডেভটুলস ইউটিলিটিস এপিআই copy()কমান্ড ব্যবহার করতে পারেন ।

আপনার যদি প্রচুর অবজেক্ট থাকে তবে আপনি আসলে আপনার সমস্ত বস্তু JSON.stringify () করতে পারেন এবং সেগুলিতে একটি স্ট্রিংয়ের সাথে যুক্ত করা চালিয়ে যেতে পারেন। copy()ক্লিপবোর্ডে সম্পূর্ণ স্ট্রিংটি অনুলিপি করতে এখন পদ্ধতিটি ব্যবহার করুন ।


13
ব্যবহার: অনুলিপি (অবজেক্ট)
এন্টোইন

দ্রষ্টব্য: আপনিrequire("util").format(...)JSON.stringify() একে একে প্রয়োগ করার পরিবর্তে ব্যবহার করতে পারেনNPM উপর মডিউল উভয় Node.js এবং ওয়েব ব্রাউজারে কাজ করে। util
Ван Ван

2
যদি আপনি অনুলিপি (অবজেক্ট) টাইপ করেন এবং এটি 'অপরিবর্তিত' ফিরে আসে তবে এটি আসলে সাফল্য। অবজেক্টটি এখন আপনার ক্লিপবোর্ডে রয়েছে এবং আটকানো যায়।
ডিন 21

7

একটি মুক্ত-উত্স জাভাস্ক্রিপ্ট প্লাগইন রয়েছে যা কেবল এটি করে - ডিবাগআউট.জেএস

ডিবাগআউট.জেএস রেকর্ড করে কনসোল.লগ সংরক্ষণ করুন যাতে আপনার অ্যাপ্লিকেশন সেগুলি অ্যাক্সেস করতে পারে। সম্পূর্ণ প্রকাশ, আমি এটি লিখেছি। এটি যথাযথভাবে বিভিন্ন ধরণের ফর্ম্যাট করে, নেস্টেড অবজেক্ট এবং অ্যারে পরিচালনা করতে পারে এবং প্রতিটি লগের পাশেই stচ্ছিকভাবে একটি টাইমস্ট্যাম্প রাখতে পারে। এটি এক জায়গায় সরাসরি-লগিং টগল করে।


আমি একটি ত্রুটি SyntaxError: export declarations may only appear at top level of a module --> debugout.js:9
পাচ্ছি

@ সেনুরাডিসানায়াকে এখনই চেষ্টা করুন - আমাকে কারও জনসংযোগ ফিরিয়ে দিতে হয়েছিল যা আমি পরীক্ষা করি নি: /
অজৈবিক

3

কনসোলে রাইট ক্লিক করুন .. সেভ হিসাবে ক্লিক করুন .. এটি সাধারণ .. আপনি একটি আউটপুট পাঠ্য ফাইল পাবেন


ত্রুটি বনাম লগ বনাম লগ কী তা কেবল কোনও ইঙ্গিত ছাড়াই।
পলিয়াস লাইকিস


2

আর একটি ওপেন-সোর্স সরঞ্জাম রয়েছে যা আপনাকে console.logআপনার সার্ভারের কোনও ফাইলের সমস্ত আউটপুট - জেএস লগফ্লুশ (প্লাগ!) সংরক্ষণ করতে দেয়।

জেএস লগফ্লাশ একটি সংহত জাভাস্ক্রিপ্ট লগিং সমাধান যা অন্তর্ভুক্ত:

  • ক্রস ব্রাউজারের ইউআই-কম প্রতিস্থাপন কনসোল.লগ - ক্লায়েন্টের পক্ষে।
  • লগ স্টোরেজ সিস্টেম - সার্ভার সাইডে।

ডেমো


2

পার্টিতে এটি সত্যিই দেরি হয়ে গেছে তবে এটি কারওর পক্ষে সহায়তা করবে। আমার সমাধানটি ওপি সমস্যাযুক্ত হিসাবে বর্ণিত হিসাবে সাদৃশ্যপূর্ণ বলে মনে হয়, তবে সম্ভবত এটি এমন একটি বৈশিষ্ট্য যা ক্রোম এখন সরবরাহ করে, তবে তা নয়। অবজেক্টটি কনসোলে লেখার পরে ডান-ক্লিক এবং। লগ ফাইলটি সংরক্ষণ করার চেষ্টা করেছি, তবে যা কিছু আমাকে দিয়েছে তা এই সহ একটি টেক্সট ফাইল ছিল:

কনসোল.জেএস: 230 হয়েছে: অ্যারে (50000) [0… 9999] [10000… 19999] [20000… 29999] [30000… 39999] [40000… 49999] দৈর্ঘ্য: 50000__ প্রোফাইল__: অ্যারে (0)

যা কারও কাজে আসেনি।

আমি যা করতে পেরেছি console.log(data)তা কোডের সন্ধান করা ছিল , এটিতে একটি ব্রেকপয়েন্ট রেখেছিল এবং তারপরে JSON.Stringify(data)কনসোলটি টাইপ করে যা পুরো অবজেক্টটিকে JSON স্ট্রিং হিসাবে প্রদর্শন করে এবং ক্রোম কনসোল আপনাকে আসলে এটি অনুলিপি করার জন্য একটি বোতাম দেয় । তারপরে একটি পাঠ্য সম্পাদক এ পেস্ট করুন এবং আপনার JSON আছে

এখানে চিত্র বর্ণনা লিখুন


এটি বলছে শেষে দীর্ঘ পাঠ্য কেটে দেওয়া হয়েছে , যদি আপনার প্রেস কপিটি এটি পুরো 20.6MB অনুলিপি করে?
এডুয়ার্ড ফ্লোরিয়েন্সু

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