من میخوام با دستور tail از لاگ های سرور خروجی داشته باشم و مثلا پیام هایی که در آن INFO و SEVERE باشه رو به صورت رنگی مثلا خطی که در اون SEVERE هست رو به رنگ قرمز و INFO رو به رنگ سبز نمایش بده؟
برای اینکه tail این قابلیت رو داشته باشه و یا اینکه جایگزینی به جای tail استفاده کنم برای این منظور از دستور multitail باید استفاده کرد. در حقیقت این دستور به دستور tial -f کلیت میبخشد و شما میتوانید چندین فایل رو در پنجره های متفاوت و خط های highlight با توجه به محتواشون مشاهده کنید. ساختار این دستور:
رنگ ها هم میتوانند تنظیم شوند اگر رنگ دیفالت را نخواستید میتوانید رنگ مورد نظر خود را در فایل کانفیگ قرار دهید. برای این منظور شما اول باید یک colorscheme در فایل کانفیگ (multitailrc./~) ایجاد کنید. همانند زیر عمل کنید:
سپس محتوای زیر را در اون قرار میدهیم:
حالا با استفاده از کامند زیر لاگ مورد نظر رو بررسی میکنید:
همانطور که در کامند بالا میبینید از color scheme (طرح رنگ) habili_log استفاده شده.
راه حل دیگه زمانی که شما روی سرورهای حساسی هستید که نمیتونید ابزارهای غیراستاندارد را نصب کنید ترکیپ کامند tail -f با کامندهای sed یا کامند awk برای اضافه کردن رنگ به جملات انتخابی و مورد نظر شما میباشد. برای این منظور شما ابتدا از کامند tail -f استفاده کنید تا بدون تاخیر خروجی استاندارد را برای شما نمایش بده و سپس با استفاده از | (علامت pipe) خروجی را به سمت دستور awk ارسال کنید و با ساختار زیر خط های رنگی را ایجاد کنید.
راه دیگه استفاده از دستور زیر میباشد که خطی که درر اون کلمه SEVERE هست رو به صورت کامل به رنگ قرمز نمایش میده:
عبارت \e[1;31m به شما رنگ قرمز رو برمیگردونه اگر رنگ زرد رو خواستید از عبارت \e[1;33m استفاده کنید و برای رنگ سبز هم از \e[1;32m استفاده کنید.
راه دیگه استفاده از دستور rainbow هست که به شما اجازه میده تا یکسری عبارات خاص رو به صورت رنگی داشته باشید:
برای اینکه tail این قابلیت رو داشته باشه و یا اینکه جایگزینی به جای tail استفاده کنم برای این منظور از دستور multitail باید استفاده کرد. در حقیقت این دستور به دستور tial -f کلیت میبخشد و شما میتوانید چندین فایل رو در پنجره های متفاوت و خط های highlight با توجه به محتواشون مشاهده کنید. ساختار این دستور:
کد PHP:
multitail -c /path/to/log
کد PHP:
vim ~/.multitailrc
کد PHP:
colorscheme:habili_log
cs_re:green:INFO
cs_re:red:SEVERE
کد PHP:
multitail -cS habili_log /path/to/log
راه حل دیگه زمانی که شما روی سرورهای حساسی هستید که نمیتونید ابزارهای غیراستاندارد را نصب کنید ترکیپ کامند tail -f با کامندهای sed یا کامند awk برای اضافه کردن رنگ به جملات انتخابی و مورد نظر شما میباشد. برای این منظور شما ابتدا از کامند tail -f استفاده کنید تا بدون تاخیر خروجی استاندارد را برای شما نمایش بده و سپس با استفاده از | (علامت pipe) خروجی را به سمت دستور awk ارسال کنید و با ساختار زیر خط های رنگی را ایجاد کنید.
کد PHP:
tail -f /path/to/log | awk '
/INFO/ {print "\033[32m" $0 "\033[39m"}
/SEVERE/ {print "\033[31m" $0 "\033[39m"}
'
کد PHP:
$ tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g'
راه دیگه استفاده از دستور rainbow هست که به شما اجازه میده تا یکسری عبارات خاص رو به صورت رنگی داشته باشید:
کد PHP:
rainbow --red='SEVERE.*' --green='INFO.*' -- tail -f my-file.log