একটি ফাইলে Chrome এ কনসোল.লগ সংরক্ষণ করুন


173

ক্রোমে কনসোল.লগ আউটপুট কোনও ফাইলে সংরক্ষণ করার উপায় কি কেউ জানেন? বা কনসোল থেকে কীভাবে টেক্সটটি অনুলিপি করবেন?

বলুন আপনি কয়েক ঘন্টা কার্যক্ষম পরীক্ষা চালিয়ে যাচ্ছেন এবং আপনার Chrome এ হাজার হাজার লাইন কনসোল.লগ আউটপুট পেয়েছেন। আপনি কীভাবে এটি সংরক্ষণ বা রফতানি করবেন?


উত্তর:


98

আমার একই জিনিসটি করা দরকার এবং এটিই আমি পেয়েছি এমন সমাধান:

  1. পতাকা ব্যবহার করে কমান্ড লাইন থেকে লগিং সক্ষম করুন :

    --enable-logging --v=1

    এটি ক্রোম অভ্যন্তরীণভাবে যা কিছু করে তা লগ করে, তবে এটি সমস্ত console.log()বার্তাগুলিকেও লগ করে । লগ ফাইলটি বলা হয় chrome_debug.logএবং এটিতে অবস্থিত User Data Directory

  2. লগগুলির সাথে যে লগ ফাইলগুলি পান সেগুলি ফিল্টার করুন CONSOLE(\d+)

নোট করুন যে কনসোল লগগুলি উপস্থিত হয় না --incognito


3
মনে হচ্ছে এটি আমার ম্যাক ওএসে কাজ করে না, অভ্যন্তরীণ লগ রয়েছে তবে কনসোল.লগ নেই ...
নিকো

7
এটি কনসোল.লগ তথ্য লগ ফাইলে সংরক্ষণ করে না। উইন্ডোজ 8
coderama

4
ম্যাক-তে আমি লগ ফাইলটি Library / লাইব্রেরি / অ্যাপ্লিকেশন সহায়তা / গুগল / ক্রোম / ক্রোম_দেবগ.লগ
পেয়েছি

2
এটি এখনও ওএসএক্স 10.10.3 এ আমার জন্য /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-logging --v=1লগ ইন সংরক্ষিত~/Library/Application Support/Google/Chrome/chrome_debug.log
mateuscb

3
আমি অভ্যন্তরীণ ক্রোম লগগুলি ছাড়া অন্য কিছু পাই না। আমার console.log()লাইনগুলি এই ফাইলটিতে নেই। যে কেউ এই জন্য একটি ফিক্স আছে?
xandermonkey

187

ভাল খবর

ক্রোম ডেভ সরঞ্জামগুলি আপনাকে এখন কোনও ফাইলে স্থানীয়ভাবে কনসোল আউটপুট সংরক্ষণ করতে দেয়

  1. কনসোলটি খুলুন
  2. সঠিক পছন্দ
  3. "হিসাবে সংরক্ষণ করুন .." নির্বাচন করুন

কনসোল ফাইল এ সংরক্ষণ করুন

ক্রোম বিকাশকারী নির্দেশাবলী এখানে


3
এটি কি কিবোর্ড শর্টকাট ব্যবহার করে বা কনসোলে একটি কমান্ড চালানো যায়?
সার্থক সিংহল

1
এখানে সমস্ত ডিভুলস শর্টকাটগুলি ডেভেলপারের
ক্রোম

11
এটি স্ট্যাকের ট্রেস অনুলিপি করে বলে মনে হচ্ছে না
মাইকেল মাইকেল

2
আপনি কি আবার কনসোলে সেই ফাইলটি খুলতে পারবেন? যদি তা হয় তবে কীভাবে?
মাহাথি ভেম্পতি

7
মনে রাখবেন যে এটি অবজেক্টগুলিকে প্রসারিত করবে না - এটি এখনও তাদের ছোট ছোট আকারের আকারগুলিতে মুদ্রণ করবে, যেমন {a: 1, b: 2, c: 3, ...}
গ্যালেন লং

29

একটি ওপেন-সোর্স জাভাস্ক্রিপ্ট প্লাগইন রয়েছে যা কেবল এটি করে তবে কোনও ব্রাউজারের জন্য - debugout.js

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


4
রেফারেন্সের জন্য, যদিও এটি দুর্দান্ত সরঞ্জামের মতো দেখায়, এটি ব্রাউজার থেকে আউটপুট ক্যাপচার করবে না, যেমন যখন চিত্রের লোড ব্যর্থ হয় বা অন্য অন্তর্নির্মিত কনসোল আউটপুট, এবং এর জন্য আপনাকে বিশেষ সিনট্যাক্স ব্যবহার করে আপনার লগ স্টেটমেন্টগুলি পুনরায় লেখার প্রয়োজন হয়।
লুকাস

@ লুকুস এটি অবশ্যই ব্রাউজারের আউটপুটটি ক্যাপচার করবে না (এটি করার জন্য আপনার একটি বানরের প্যাচ দরকার হবে) তবে কোনও বিশেষ বাক্য গঠন প্রয়োজন নেই। আপনি কনসোল.এল আর্গগুলিকে পাস করুন। লগ
অজৈবিক

1
@ ইন্নোরগানিক আমি কনসোল আউটপুট ক্যাপচার করার জন্য সেলেনিয়াম পরীক্ষার জন্য একটি উপায় অনুসন্ধান করছিলাম, তবে এটি একটি পরীক্ষামূলক পরিষেবার জন্য ব্যবহৃত হবে যাতে ব্যবহারকারীর ওয়েবসাইটে আমাদের নিয়ন্ত্রণ না থাকে। আমি মনে করি আপনার সরঞ্জামটি দুর্দান্ত, তবে এটির জন্য একটি ব্যবহারকারীর তাদের বিদ্যমান কনসোল.লগ বিবৃতিগুলি বাগআউট.লগ হিসাবে আবার লিখতে হবে, এটাই আমি বিশেষ বাক্য গঠন দ্বারা বোঝাচ্ছি। এটি এতদূর দেখা যাচ্ছে যে এটি করার জন্য কোনও ক্রস ব্রাউজারের উপায় নেই।
লুকাস

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

23

আমি এর জন্য একটি দুর্দান্ত এবং সহজ উপায় খুঁজে পেয়েছি।

  1. কনসোলে - কনসোল লগ করা অবজেক্টে ডান ক্লিক করুন

  2. 'গ্লোবাল ভেরিয়েবল হিসাবে স্টোর' এ ক্লিক করুন

  3. নতুন ভেরিয়েবলের নাম দেখুন - যেমন এটি ভ্যারিয়েবলনেম 1

  4. কনসোলে টাইপ করুন: JSON.stringify (ভেরিয়েবলনেম 1)

  5. পরিবর্তনশীল স্ট্রিং সামগ্রীটি অনুলিপি করুন: যেমন {"a": 1, "খ": 2, "সি": 3}

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

  1. কিছু জেএসএন অনলাইন সম্পাদক এ যান: যেমন https://jsoneitoronline.org/

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


1
পৃষ্ঠতলে আড়াল মনে হয় তবে এটি বেশ ভালভাবে কাজ করে। পরবর্তী সংস্করণগুলিতে, আউটপুটটির নীচে একটি "অনুলিপি" বোতাম রয়েছে। আমি কেবল এটি টিপুন, তারপরে একটি ছোট স্ক্রিপ্ট রয়েছে যা ক্লিপবোর্ডটি .json ফাইল হিসাবে সংরক্ষণ করে এবং ভিজ্যুয়াল স্টুডিওতে খোলে যা খুব পঠনযোগ্য। একমাত্র পরিবর্তনটি হ'ল আমি JSON.stringify (টেমপ 1, নাল, 2) এটি আরও সহজ করে পড়া সহজ করতে। কনসোলটি সংরক্ষণ করার জন্য নীচের কৌশলটি পাশাপাশি কাজ করে।
ওয়েড হ্যাটলার

8

আরও ভাল লগ ফাইলের জন্য (ক্রোম-ডিবাগ বোকা ছাড়াই) ব্যবহার করুন:

--enable-logging --log-level=0

এর পরিবর্তে --v=1কেবলমাত্র খুব বেশি তথ্য।

এটি তবুও ত্রুটিগুলি এবং সতর্কতাগুলি সরবরাহ করবে যেমন আপনি সাধারণত ক্রোম কনসোলে দেখতে পাবেন।

আপডেট 18 ই মে, 2020: আসলে, আমি মনে করি এটি আর সত্য নয়। এই লগিং স্তরটি যাই হোক না কেন আমি কনসোল বার্তাগুলি খুঁজে পাইনি।


7

এটি হতে পারে বা সহায়ক হতে পারে না তবে উইন্ডোজে আপনি উইন্ডোজের ইভেন্ট ট্র্যাকিং ব্যবহার করে কনসোল লগটি পড়তে পারেন

http://msdn.microsoft.com/en-us/library/ms751538.aspx

আমাদের ইন্টিগ্রেশন টেস্টগুলি .NET এ চালিত হয় তাই আমি আমাদের পরীক্ষার আউটপুটে কনসোল লগ যুক্ত করতে এই পদ্ধতিটি ব্যবহার করি। আমি এখানে প্রদর্শনের জন্য একটি নমুনা কনসোল প্রকল্প তৈরি করেছি: https://github.com/jkells/chrome-trace

- সক্ষম-লগিং --v = 1 Chrome এর সর্বশেষ সংস্করণে কাজ করছে বলে মনে হচ্ছে না।


3

অনেক ভাল উত্তর আছে তবে কেন কেবল JSON.stringify (আপনার_প্রযুক্তি) ব্যবহার করবেন না? তারপরে অনুলিপিগুলিকে অনুলিপি করুন এবং পেস্ট করুন (বাইরের উদ্ধৃতিগুলি সরান)। আমি এই একই উত্তরটি এখানেও পোস্ট করেছি: একটি কনসোল.লগ (অবজেক্ট) এর আউটপুট কীভাবে সংরক্ষণ করবেন?


1
সম্পর্কে সমস্যার জন্য " Uncaught TypeError: তাদেরকে JSON করতে বৃত্তাকার কাঠামো রূপান্তর " , হয়তো এই সাহায্য করতে পারে।
কেটিএক্স

2

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

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

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

ডেমো


2

আপনি যদি নিজের লোকালহোস্টে অ্যাপাচি সার্ভার চালাচ্ছেন (এটি কোনও প্রোডাকশন সার্ভারে করবেন না), তবে ফলাফলটি কনসোলটিতে লেখার পরিবর্তে কোনও স্ক্রিপ্টে পোস্ট করতে পারেন।

পরিবর্তে console.log, আপনি লিখতে পারেন:

JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});

তাহলে এটি save.phpকরতে পারেন

<?php

 $fn = $_REQUEST['fn'];
 $data = $_REQUEST['data'];

 file_put_contents("path/$fn", $data);

1
আমি সত্যিকার অর্থে আশা করি প্রযোজনার সার্ভারে এটিকে আর কেউ আপলোড করে না 🙁 এটি সার্ভারের জন্য বিপদে পড়েছে।
ডেভ ম্যাকিনটোস

আপনি কি প্রথম লাইনটি পড়েননি: "আপনি যদি নিজের লোকালহোস্টে অ্যাপাচি সার্ভার চালাচ্ছেন"?
সুপারশন

আমার পোস্টের আপনার ডাউন ভোট ন্যায়সঙ্গত নয় কারণ এটি "লোকালহোস্ট" (যেখানে জেএসওএনপি পোস্টের ডেটা অনুরোধ করে) তে প্রোডাকশন সার্ভার চালানোর জন্য অবিশ্বাস্যরূপে বোকামি হবে।
সুপারসান

আমি কখনই আপনার উত্তরটি ভোট দিয়েছি না, আমি জনসাধারণের জন্য উপলব্ধ কোনও সার্ভারে আপলোড করা থাকলে এই স্ক্রিপ্টটি যে বিপদ সৃষ্টি করেছে তা কেবলমাত্র উল্লেখ করেছি।
ডেভ ম্যাকিনটোস

1

লিনাক্সে (কমপক্ষে) আপনি প্রতিটি সময় চালিত নামযুক্ত ফাইলে কনসোল ক্রিয়াকলাপের একটি লগ লিখতে ক্রোমকে পরিবেশে CHROME_LOG_FILE সেট করতে পারেন। ক্রোম শুরু হওয়ার সাথে সাথে লগটি ওভাররাইট করা হয়। এইভাবে, যদি আপনার একটি স্বয়ংক্রিয় সেশন থাকে যা ক্রোম চালায়, আপনার ক্রোমটি শুরু করার পদ্ধতিটি পরিবর্তন করতে হবে না এবং সেশনটি শেষ হওয়ার পরে লগ রয়েছে।

CHROME_LOG_FILE = chrome.log রফতানি করুন


0

আজকাল এটি খুব সহজ - কনসোল লগে প্রদর্শিত যেকোন আইটেমটিতে ডান ক্লিক করুন এবং সংরক্ষণ করুন হিসাবে নির্বাচন করুন এবং আপনার কম্পিউটারের কোনও ফাইলে পুরো লগ আউটপুট সংরক্ষণ করুন।


0

এই থ্রেডের অন্যান্য সমাধানগুলি আমার ম্যাকটিতে কাজ করছে না। এখানে এমন একটি লগার যা অজ্যাক্স ব্যবহার করে মাঝে মাঝে স্ট্রিং প্রতিনিধিত্ব সংরক্ষণ করে। console.saveপরিবর্তে এটি ব্যবহার করুনconsole.log

var logFileString="";
var maxLogLength=1024*128;

console.save=function(){
  var logArgs={};

  for(var i=0; i<arguments.length; i++) logArgs['arg'+i]=arguments[i];
  console.log(logArgs);

  // keep a string representation of every log
  logFileString+=JSON.stringify(logArgs,null,2)+'\n';

  // save the string representation when it gets big
  if(logFileString.length>maxLogLength){
    // send a copy in case race conditions change it mid-save
    saveLog(logFileString);
    logFileString="";
  }
};

আপনার যা প্রয়োজন তার উপর নির্ভর করে আপনি সেই স্ট্রিং বা এটি কেবল সংরক্ষণ করতে console.logএবং অনুলিপি এবং পেস্ট করতে পারেন। আপনি যদি এটি সংরক্ষণ করতে চান তবে আপনার জন্য একটি এজাক্স এখানে রয়েছে:

function saveLog(data){
  // do some ajax stuff with data.
  var xhttp = new XMLHttpRequest();

  xhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200) {}
  }

  xhttp.open("POST", 'saveLog.php', true);
  xhttp.send(data);
}

saveLog.phpএকটি লগ ফাইল কোথাও তথ্য যোগ করা উচিত নয়। আমার সেই অংশের দরকার নেই তাই আমি এখানে এটি অন্তর্ভুক্ত করছি না। :)

https://www.google.com/search?q=php+append+to+log

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