উত্তর:
আপডেট (dawmail333 ধন্যবাদ):
heroku logs -n 1500
বা, লগগুলি লাইভ লেগেছে
heroku logs -t
আপনি কয়েক হাজার লাইন বেশী প্রয়োজন আপনি heroku এর ব্যবহার করতে পারেন Syslog চালান
বিকল্পভাবে (পুরানো পদ্ধতি):
$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
heroku logs -n 1500
, এটি সিডারে উপলভ্য সেরা পদ্ধতি। এর চেয়ে বেশি লাইন লাগলে আপনার সিসলগ
heroku run rails c
। আপডেট করা হয়েছে!
heroku run cat log/production.log
?
লগিং হিরকুতে অনেক উন্নতি হয়েছে!
$ heroku logs -n 500
উত্তম!
$ heroku logs --tail
তথ্যসূত্র: http://devcenter.heroku.com/articles/logging
আপডেট
এগুলি আর অ্যাড-অন নয়, তবে ডিফল্ট কার্যকারিতার অংশ :)
হিরোকু লগগুলিকে সময়ের আদেশিত ইভেন্টগুলির স্ট্রিম হিসাবে বিবেচনা করে। *.log
বিভিন্ন পরিস্থিতিতে বিভিন্ন কারণে ফাইল সিস্টেমে ফাইল অ্যাক্সেস করার পরামর্শ দেওয়া হয় না।
প্রথমত, যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ডায়নো থাকে তবে প্রতিটি লগ ফাইল কেবল আপনার অ্যাপের ইভেন্টের মধ্যে একটি আংশিক দৃশ্য উপস্থাপন করে। সম্পূর্ণ দর্শন পেতে আপনাকে সমস্ত ফাইল ম্যানুয়ালি একত্রিত করতে হবে।
দ্বিতীয়ত, হিরোকুতে থাকা ফাইল সিস্টেমটি ক্ষণস্থায়ী অর্থ যখনই আপনার ডায়নো পুনরায় চালু বা সরানো হয় (যা দিনে প্রায় একবার ঘটে ) লগ ফাইলগুলি হারিয়ে যায়। সুতরাং আপনি কেবলমাত্র সেই একক ডায়নোর লগগুলিতে এক দিনের ভিউ পাবেন।
শেষ অবধি , সিডার স্ট্যাক চলমান heroku console
বা heroku run bash
আপনাকে বর্তমানে চলমান ডায়নোর সাথে সংযুক্ত করে না। এটি bash
কমান্ডের জন্য বিশেষত একটি নতুন তৈরি করেছে । একে বলা হয় ওয়ান-অফ প্রক্রিয়া । এই হিসাবে, আপনি আপনার অন্যান্য ডায়নোগুলির জন্য লগ ফাইলগুলি খুঁজে পাবেন না যা প্রকৃত http প্রসেসগুলি চালিত হয়েছে তার জন্য চলছে heroku run
।
লগিং এবং সাধারণভাবে দৃশ্যমানতা হিরোকুতে প্রথম শ্রেণির নাগরিক এবং এই সমস্যাগুলিকে সম্বোধন করার জন্য বেশ কয়েকটি সরঞ্জাম রয়েছে। প্রথমত, সমস্ত ডায়নো এবং অ্যাপ্লিকেশন / স্ট্যাকের সমস্ত স্তর জুড়ে অ্যাপ্লিকেশন ইভেন্টের রিয়েল-টাইম স্ট্রিমটি দেখতে heroku logs -t
আপনার টার্মিনালটিতে আউটপুট টানতে কমান্ডটি ব্যবহার করুন ।
$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...
এই মুহূর্তে আপনার অ্যাপ্লিকেশন আচরণ পর্যবেক্ষণ জন্য দুর্দান্ত কাজ করে। আপনি যদি লগগুলি দীর্ঘ সময়ের জন্য সঞ্চয় করতে চান তবে আপনি অনেকগুলি লগিং অ্যাড-অনগুলির মধ্যে একটি ব্যবহার করতে পারেন যা লগ প্রতিরোধ, সতর্কতা এবং ট্রিগার সরবরাহ করে।
শেষ অবধি, আপনি যদি লগ ফাইলগুলি নিজেরাই সঞ্চয় করতে চান তবে আপনি হিরোকু থেকে ইভেন্টগুলি প্রবাহ পেতে এবং পোস্ট-প্রসেস / নিজেকে বিশ্লেষণ করতে নিজের সিসলগ ড্রেন সেটআপ করতে পারেন ।
সংক্ষিপ্তসার: স্থির লগ ফাইলগুলি ব্যবহার heroku console
বা heroku run bash
দেখতে ব্যবহার করবেন না । আপনার অ্যাপ্লিকেশনটির জন্য হিরোকুর লগ ইভেন্টগুলির স্ট্রিম heroku logs
বা লগিং অ্যাড- অনের পাইপ ।
স্বতন্ত্র স্ট্রিম / ফিল্টারও দেখুন।
যেমন লেজ শুধুমাত্র আপনার অ্যাপ্লিকেশন লগ
heroku logs --source app -t
অথবা কেবল রাউটার লগগুলিই দেখুন
heroku logs --ps router
বা তাদের একসাথে চেইন
heroku logs --source app --ps worker
খুব ভাল..
heroku logs --ps web.1
(1 বছর পূর্বে)
ঠিক আছে উপরের উত্তরগুলি খুব সহায়ক এটি আপনাকে কমান্ড লাইন থেকে দেখতে সহায়তা করবে। আপনি যদি নিজের জিইউআই থেকে করতে চান তবে আপনাকে আপনার হিরকু অ্যাকাউন্টে লগইন করতে হবে এবং তারপরে আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন এবং শেষ পর্যন্ত ভিউ লগগুলিতে ক্লিক করুন
হেরোকু লগিং অনুসরণ করুন
আপনার লগগুলি দেখতে আমাদের রয়েছে:
heroku logs
--num
(বা -n
) বিকল্প প্রদর্শন করুন।
heroku logs -n 200
heroku logs --tail
heroku logs --app your_app_name
আপনি হিরোকুর কমান্ড লাইন ইন্টারফেস ( সিএলআই ব্যবহার ) ব্যবহার করে আপনার লগ ফাইলগুলি অ্যাক্সেস করতে পারেন ।
যদি হিরোকুর সিএলআই ইনস্টল করা থাকে এবং আপনি নিজের অ্যাপ্লিকেশনটির নাম (যেমন https://myapp.herokuapp.com/
) জানেন তবে আপনি নীচের আদেশটি চালাতে পারেন:
heroku logs --tail --app=myapp
আপনি ব্যবহার করে একটি রিয়েল-টাইম স্ট্রিমে লগগুলি অ্যাক্সেস করতে পারেন:
heroku logs --source app --tail --app=myapp
লগগুলি যদি আপনাকে এরকম কিছু বলে দেয়:
এনপিএম ইআরআর! এই রানের একটি সম্পূর্ণ লগ পাওয়া যাবে:
এনপিএম ইআরআর! /app/.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
তারপরে আপনি হেরোকু সি এল এলির মাধ্যমে ব্যাশ টার্মিনালটি ব্যবহার করে এগুলি অ্যাক্সেস করতে পারেন:
heroku run bash --app=myapp
less ./.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
/usr/bin/less: cannot execute binary files
আপনার অ্যাপ্লিকেশনটিতে ফ্রি পেপারট্রেল পরিকল্পনার মতো কিছু যুক্ত করার পক্ষে এটি উপযুক্ত । জিরো কনফিগারেশন এবং আপনি 10 এমবি / দিন পর্যন্ত 7 দিনের মূল্যমানের লগিং ডেটা পান এবং 2 দিনের লগের মধ্যে ফিরে অনুসন্ধান করতে পারেন।
আপনাকে ব্যবহার -t
বা --tail
বিকল্পের প্রয়োজন এবং আপনার হিরকু অ্যাপ্লিকেশনটির নাম নির্ধারণ করতে হবে।
heroku logs -t --app app_name
আমার সমাধানটি হ'ল অ্যাপ্লিকেশনটি প্রথমবারের মতো সম্পূর্ণ লগ পাওয়া, যেমন:
heroku logs -n 1500 > log
তারপরে fgrep -vf
এটি আপ টু ডেট রাখতে যোগ করুন , যেমন:
heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log
অবিচ্ছিন্ন লগিংয়ের জন্য, প্রতি x মিনিট (বা সেকেন্ড) এর জন্য ওয়াচটি ব্যবহার করে কেবল এটি পুনরাবৃত্তি করুন।
আমি এইভাবে এটি করতে পছন্দ করি
heroku logs --tail | tee -a herokuLogs
আপনি স্ক্রিপ্টটি পটভূমিতে চলতে পারেন এবং আপনি যেভাবে যে কোনও সময় চাইলে পাঠ্য ফাইল থেকে লগগুলি কেবল ফিল্টার করতে পারেন।
সমস্ত লগ দেখতে (এছাড়াও historicalতিহাসিক লগগুলি পরিচালনা করুন) আপনার কিছু লগগুলি ড্রেনে জল প্রয়োগ করতে হবে এবং আপনার লগগুলি সেখানে চালিত করা উচিত:
heroku drains:add syslog+tls://splunk-server.com:514 -a app_name
এবং তারপরে আপনার স্প্লঙ্ক সার্ভারে লগইন করুন এবং যে কোনও লগের জন্য অনুসন্ধান করুন। আমি স্প্লঙ্ক ব্যবহার করছি এবং এটি আমার জন্য পুরোপুরি সূক্ষ্মভাবে কাজ করছে।
দ্বিতীয় বিকল্প - আপনি নীচে দেওয়া মত আপনার অ্যাপ্লিকেশনটিতে অ্যাড ক্রয় করতে পারেন: (আমি এই বিকল্পগুলি ব্যবহার করি নি, তবে এগুলি উপলভ্য বিকল্পগুলি)।
আপনি নীচের বিকল্পগুলিতেও নজর রাখতে পারেন: আপনি যদি JSON ফর্ম্যাটে আপনার লগগুলি রাখতে চান, এটি যদি আপনার লগগুলি স্প্লানক / ইএলকে মতো বহিরাগত সিস্টেমে চাপ দিচ্ছে তবে এটি সহায়তা করবে, অনুসন্ধান করা সহজ (পারফরম্যান্স ওয়াইস )ও হয়ে উঠবে JSON এ।
https://github.com/goodeggs/heroku-log-normalizer
এটি Readme.md নেই, তবে কিছু ব্যাখ্যা https://github.com/goodeggs/bites/issues/20 এ দেওয়া হয়েছে
সর্বশেষে
এবং আপনি ইতিমধ্যে অন্যান্য ব্যবহারকারীদের দ্বারা উল্লিখিত হিসাবে নীচের আদেশটি সর্বদা ব্যবহার করতে পারেন:
নীচের কমান্ডটি হিরকুতে উত্পাদিত লগগুলি টাল করবে
heroku logs -t -a <app_name>
নীচের কোমন্ডে হিরকু থেকে লগের 1000 সংখ্যা লাইন প্রদর্শিত হবে
heroku logs -n 1000 -a <app_name>
নোট করুন শুধুমাত্র 1500 লগের সর্বশেষ লাইনগুলি পাওয়া যায় এবং এর মধ্যে বাকিগুলি হিরকু ডায়ানো থেকে মুছে ফেলা হয়।
আমি অ্যাডোন ব্যবহার করার পরামর্শ দিই, আমি লজেন্টরি ব্যবহার করি। এটি ব্যবহার করতে, আপনার কমান্ড লাইনে চালান:
heroku addons:create logentries:le_tryit
(এই কমান্ডটি একটি নিখরচায় অ্যাকাউন্টের জন্য অ্যাডন তৈরি করে তবে আপনি চাইলে পরিষ্কারভাবে আপগ্রেড করতে পারেন)
লার্জরিজগুলি আপনাকে প্রতি মাসে 5 গিগাবাইট পর্যন্ত লগ ভলিউম সংরক্ষণ করতে দেয়। এই তথ্যটি গত 7 দিনের মধ্যে তাদের কমান্ড অনুসন্ধানের মাধ্যমে অনুসন্ধানযোগ্য এবং এতে রিয়েল-টাইম সতর্কতা রয়েছে।
সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য, এই অ্যাডন ব্যবহার করে আপনি নিশ্চিত করে নিন যে আপনি হিরোকু ডিফল্টরূপে সংরক্ষণ করা 1500 লাইনে পৌঁছালে আপনার লগগুলি আর হারিয়ে যাবে না। আশাকরি এটা সাহায্য করবে! দিন শুভ হোক!
heroku logs -t
আমাদের লাইভ লগগুলি দেখায়।
heroku logs -n 1500
নির্দিষ্ট লগের জন্য
তবে তবুও আমি কাগজের ট্রেইল অ্যাড-অন ব্যবহার করার পরামর্শ দেব যাগুলির নির্দিষ্ট সুবিধা রয়েছে এবং এটিতে বিনামূল্যে বেসিক পরিকল্পনা রয়েছে।
তুমি ব্যবহার করতে পার
heroku logs -n 1500
তবে এটি কোনও প্রস্তাবিত পদ্ধতি নয় (অন্য কথায় আপনাকে আসল চিত্রটি দেখায় না)
আমি আপনাকে কিছু লগিং সরঞ্জাম প্লাগ করার পরামর্শ দেব। অ্যাড-অন হিসাবে (sumoLogic, কাগজের ট্রেইল এন সব)
তাদের সকলের একটি বিনামূল্যে সংস্করণ রয়েছে (কয়েকটি সীমাবদ্ধতা সহ, যদিও একটি ছোট অ্যাপ্লিকেশন বা দেব এনভির জন্য যথেষ্ট, যা লগগুলি বিশ্লেষণ করার জন্য ভাল অন্তর্দৃষ্টি এবং সরঞ্জাম সরবরাহ করবে)
সিডার স্ট্যাকের জন্য দেখুন:
https://devcenter.heroku.com/articles/oneoff-admin-ps
আপনার চালানো দরকার:
হিরকু রান বাশ ...
heroku run bash
হোস্ট করার জন্য একটি নতুন ডিজাইন স্পিন করেছে bash
। সেই ডাইনের ফাইল সিস্টেমটিতে 'সক্রিয়' ওয়েব ডায়নো থেকে কোনও লগ ফাইল থাকবে না যাতে এই পদ্ধতির কাজ হবে না।