হিরকু - সমস্ত লগ দেখতে কিভাবে


468

আমার কাছে হিরকুতে একটি ছোট অ্যাপ রয়েছে। আমি যখনই লগগুলি দেখতে চাই তখন আমি কমান্ড লাইনে গিয়ে করি

heroku logs

এটি আমাকে প্রায় 100 টি লাইন দেখায়। হিরকুতে আমাদের অ্যাপ্লিকেশনটির জন্য সম্পূর্ণ লগগুলি দেখার কোনও উপায় নেই?

উত্তর:


784

আপডেট (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 }

5
এটি এখন সিডার স্ট্যাকের কাজ করছে না। কেউ কি নতুন বিকল্প খুঁজে পেয়েছেন?
নাথানভদা

2
কেবল ব্যবহার করুন heroku logs -n 1500, এটি সিডারে উপলভ্য সেরা পদ্ধতি। এর চেয়ে বেশি লাইন লাগলে আপনার সিসলগ
লিয়াম ডসন

সম্পদ পাইপলাইন ইস্যুগুলির জন্য এটি একটি দরকারী টিপ: হিরকু লগস -n 2000 | গ্রেপ 'প্রাকম্পম্পাইল'
ডেভ কলিন্স

এটা আসলে heroku run rails c। আপডেট করা হয়েছে!
glebm

3
পুরানো পদ্ধতির জন্য, কেন আপনি ন্যায়বিচারের পরিবর্তে রেল কনসোল চালাবেন heroku run cat log/production.log?
ক্লো

139

লগিং হিরকুতে অনেক উন্নতি হয়েছে!

$ heroku logs -n 500

উত্তম!

$ heroku logs --tail

তথ্যসূত্র: http://devcenter.heroku.com/articles/logging

আপডেট

এগুলি আর অ্যাড-অন নয়, তবে ডিফল্ট কার্যকারিতার অংশ :)


4
এছাড়াও,-1500 পর্যন্ত যেতে পারে, আমি ধরে নিয়েছি যে হেরোকু তার পরে কিছু বাদ দেয়।
লিয়াম ডসন

52

হিরোকু লগগুলিকে সময়ের আদেশিত ইভেন্টগুলির স্ট্রিম হিসাবে বিবেচনা করে। *.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বা লগিং অ্যাড- অনের পাইপ ।


23

স্বতন্ত্র স্ট্রিম / ফিল্টারও দেখুন।

যেমন লেজ শুধুমাত্র আপনার অ্যাপ্লিকেশন লগ

heroku logs --source app -t

অথবা কেবল রাউটার লগগুলিই দেখুন

heroku logs --ps router

বা তাদের একসাথে চেইন

heroku logs --source app --ps worker

খুব ভাল..


5
আমার অ্যাপ্লিকেশনটির কেবলমাত্র লগগুলি দেখতে আমি করি: heroku logs --ps web.1(1 বছর পূর্বে)
ম্যাক্সেনস

22

ঠিক আছে উপরের উত্তরগুলি খুব সহায়ক এটি আপনাকে কমান্ড লাইন থেকে দেখতে সহায়তা করবে। আপনি যদি নিজের জিইউআই থেকে করতে চান তবে আপনাকে আপনার হিরকু অ্যাকাউন্টে লগইন করতে হবে এবং তারপরে আপনার অ্যাপ্লিকেশনটি নির্বাচন করুন এবং শেষ পর্যন্ত ভিউ লগগুলিতে ক্লিক করুন

চিত্র দেখুন


1
আপনি "লগগুলি দেখুন" অপশনটিতে ক্লিক করার সময় থেকে শুরু হওয়া এই পদ্ধতিটি কেবলমাত্র লগ আউটপুটকে সেগুলি হওয়ার সাথে সাথে দেখায়। সুতরাং আপনি যদি কনসোলে না গিয়ে প্রয়োজনীয়ভাবে লগগুলি লেজ করতে চান না তবে এটি কার্যকর নয়।
জেরেমি গুন্টার

2
এই ইউআই থেকে সমস্ত লগ দেখার কোনও বিকল্প নেই?
সুনীল গার্গ

16

হেরোকু লগিং অনুসরণ করুন

আপনার লগগুলি দেখতে আমাদের রয়েছে:

  1. লগস কমান্ড ডিফল্টরূপে 100 লগ লাইন পুনরুদ্ধার করে।

heroku logs

  1. সর্বাধিক 1500 লাইন, --num(বা -n) বিকল্প প্রদর্শন করুন।

heroku logs -n 200

  1. রিয়েল টাইমে লগগুলি দেখান

heroku logs --tail

  1. আপনার যদি হিরকুতে অনেক অ্যাপ থাকে

heroku logs --app your_app_name



8

আপনি হিরোকুর কমান্ড লাইন ইন্টারফেস ( সিএলআই ব্যবহার ) ব্যবহার করে আপনার লগ ফাইলগুলি অ্যাক্সেস করতে পারেন ।

যদি হিরোকুর সিএলআই ইনস্টল করা থাকে এবং আপনি নিজের অ্যাপ্লিকেশনটির নাম (যেমন 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
মাইকেল ফুলটন

7

আপনার অ্যাপ্লিকেশনটিতে ফ্রি পেপারট্রেল পরিকল্পনার মতো কিছু যুক্ত করার পক্ষে এটি উপযুক্ত । জিরো কনফিগারেশন এবং আপনি 10 এমবি / দিন পর্যন্ত 7 দিনের মূল্যমানের লগিং ডেটা পান এবং 2 দিনের লগের মধ্যে ফিরে অনুসন্ধান করতে পারেন।


4

ওয়ার ফাইলগুলির জন্য:

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

সুতরাং নিম্নলিখিতটি আমাকে সহায়তা করেছিল:

heroku logs --app appname

আশা করি এটি কারও সাহায্য করবে।


4

আপনাকে ব্যবহার -tবা --tailবিকল্পের প্রয়োজন এবং আপনার হিরকু অ্যাপ্লিকেশনটির নাম নির্ধারণ করতে হবে।

heroku logs -t --app app_name

4

আমার সমাধানটি হ'ল অ্যাপ্লিকেশনটি প্রথমবারের মতো সম্পূর্ণ লগ পাওয়া, যেমন:

heroku logs -n 1500 > log

তারপরে fgrep -vfএটি আপ টু ডেট রাখতে যোগ করুন , যেমন:

heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log

অবিচ্ছিন্ন লগিংয়ের জন্য, প্রতি x মিনিট (বা সেকেন্ড) এর জন্য ওয়াচটি ব্যবহার করে কেবল এটি পুনরাবৃত্তি করুন।


2

বিস্তারিত লগ দেখতে আপনার production.rbফাইলটিতে দুটি লাইন রাখতে হবে:

config.logger = Logger.new(STDOUT)
config.logger.level = Logger::DEBUG

এবং তারপরে দৌড় দিয়ে

heroku logs -t

আপনি বিস্তারিত লগ দেখতে পারেন।


2

আমি এইভাবে এটি করতে পছন্দ করি

heroku logs --tail | tee -a herokuLogs

আপনি স্ক্রিপ্টটি পটভূমিতে চলতে পারেন এবং আপনি যেভাবে যে কোনও সময় চাইলে পাঠ্য ফাইল থেকে লগগুলি কেবল ফিল্টার করতে পারেন।


ধন্যবাদ, স্ক্রোল করতে আমাকে কিছুটা সময় নিয়েছিল তবে শেষ পর্যন্ত আমার জন্য সমাধানটি খুঁজে পেল।
মেইনক্রাফ্ট

2

সমস্ত লগ দেখতে (এছাড়াও historicalতিহাসিক লগগুলি পরিচালনা করুন) আপনার কিছু লগগুলি ড্রেনে জল প্রয়োগ করতে হবে এবং আপনার লগগুলি সেখানে চালিত করা উচিত:

  1. প্রথম বিকল্প - স্প্লঙ্ক ব্যবহার করা যেতে পারে: আপনি আপনার সমস্ত লগ যেমন ড্রেন করতে পারেন:
heroku drains:add syslog+tls://splunk-server.com:514 -a app_name

এবং তারপরে আপনার স্প্লঙ্ক সার্ভারে লগইন করুন এবং যে কোনও লগের জন্য অনুসন্ধান করুন। আমি স্প্লঙ্ক ব্যবহার করছি এবং এটি আমার জন্য পুরোপুরি সূক্ষ্মভাবে কাজ করছে।

  1. দ্বিতীয় বিকল্প - আপনি নীচে দেওয়া মত আপনার অ্যাপ্লিকেশনটিতে অ্যাড ক্রয় করতে পারেন: (আমি এই বিকল্পগুলি ব্যবহার করি নি, তবে এগুলি উপলভ্য বিকল্পগুলি)।

    • Timber.io
    • সুমো লজিক
    • LogEnteries
    • লগ ডিএনএ
    • কাগজ লেজ

আপনি নীচের বিকল্পগুলিতেও নজর রাখতে পারেন: আপনি যদি 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 লগের সর্বশেষ লাইনগুলি পাওয়া যায় এবং এর মধ্যে বাকিগুলি হিরকু ডায়ানো থেকে মুছে ফেলা হয়।


1

আমি অ্যাডোন ব্যবহার করার পরামর্শ দিই, আমি লজেন্টরি ব্যবহার করি। এটি ব্যবহার করতে, আপনার কমান্ড লাইনে চালান:

heroku addons:create logentries:le_tryit

(এই কমান্ডটি একটি নিখরচায় অ্যাকাউন্টের জন্য অ্যাডন তৈরি করে তবে আপনি চাইলে পরিষ্কারভাবে আপগ্রেড করতে পারেন)

লার্জরিজগুলি আপনাকে প্রতি মাসে 5 গিগাবাইট পর্যন্ত লগ ভলিউম সংরক্ষণ করতে দেয়। এই তথ্যটি গত 7 দিনের মধ্যে তাদের কমান্ড অনুসন্ধানের মাধ্যমে অনুসন্ধানযোগ্য এবং এতে রিয়েল-টাইম সতর্কতা রয়েছে।

সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য, এই অ্যাডন ব্যবহার করে আপনি নিশ্চিত করে নিন যে আপনি হিরোকু ডিফল্টরূপে সংরক্ষণ করা 1500 লাইনে পৌঁছালে আপনার লগগুলি আর হারিয়ে যাবে না। আশাকরি এটা সাহায্য করবে! দিন শুভ হোক!


1

heroku logs -t আমাদের লাইভ লগগুলি দেখায়। heroku logs -n 1500নির্দিষ্ট লগের জন্য

তবে তবুও আমি কাগজের ট্রেইল অ্যাড-অন ব্যবহার করার পরামর্শ দেব যাগুলির নির্দিষ্ট সুবিধা রয়েছে এবং এটিতে বিনামূল্যে বেসিক পরিকল্পনা রয়েছে।


0

তুমি ব্যবহার করতে পার heroku logs -n 1500

তবে এটি কোনও প্রস্তাবিত পদ্ধতি নয় (অন্য কথায় আপনাকে আসল চিত্রটি দেখায় না)

আমি আপনাকে কিছু লগিং সরঞ্জাম প্লাগ করার পরামর্শ দেব। অ্যাড-অন হিসাবে (sumoLogic, কাগজের ট্রেইল এন সব)

তাদের সকলের একটি বিনামূল্যে সংস্করণ রয়েছে (কয়েকটি সীমাবদ্ধতা সহ, যদিও একটি ছোট অ্যাপ্লিকেশন বা দেব এনভির জন্য যথেষ্ট, যা লগগুলি বিশ্লেষণ করার জন্য ভাল অন্তর্দৃষ্টি এবং সরঞ্জাম সরবরাহ করবে)


-2

সিডার স্ট্যাকের জন্য দেখুন:

https://devcenter.heroku.com/articles/oneoff-admin-ps

আপনার চালানো দরকার:

হিরকু রান বাশ ...


9
সিডার কমান্ডটি heroku run bashহোস্ট করার জন্য একটি নতুন ডিজাইন স্পিন করেছে bash। সেই ডাইনের ফাইল সিস্টেমটিতে 'সক্রিয়' ওয়েব ডায়নো থেকে কোনও লগ ফাইল থাকবে না যাতে এই পদ্ধতির কাজ হবে না।
রায়ান ডাইগল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.