সিয়েরায় লগার কমান্ড কীভাবে ব্যবহার করবেন?


11

আমি আমার শেল-স্ক্রিপ্টটি ব্যবহার করে ইভেন্টগুলি / চেক-পয়েন্টগুলি লগ করার চেষ্টা করছি logger

ওএস এক্সে কীভাবে ব্যবহার loggerবা syslogইউটিলিটি করবেন (সংস্করণ 10.12 (16A323)) । আমি চেষ্টা করেছি

logger "Hello world"এবং /var/log/system.logকনসোল অ্যাপ্লিকেশন ব্যবহার করে চেক করা হয়েছে, নিম্নলিখিতটি লগ এন্ট্রি তৈরি হয়েছিল

'–Xó ^ H' নামযুক্ত বাইনারিগুলির জন্য স্ট্রিং সংগ্রহ করতে ব্যর্থ

loggerওএস এক্সে কীভাবে ব্যবহার করবেন ? ওএস এক্স সিস্টেম লগটিতে একটি এন্ট্রি তৈরি / যুক্ত করার জন্য নির্দিষ্ট করার মতো কিছু আছে কি?


আপনি কেন চান তা উল্লেখ করে আপনার প্রশ্নটির উন্নতি করতে পারেন? এটি আপনার জন্য বিকল্পগুলি খুঁজতে লোককে সহায়তা করতে পারে।
হার্ভ

আমি সফলভাবে একটি এন্ট্রি লগ করতে সক্ষম হয়েছিল: $ লগার "এটি একটি লগ এন্ট্রি" "$ প্রতিধ্বনি $? 0 তারপরে যখন আমি আমার কনসোলে "সমস্ত বার্তা" চেক করেছি, আমার বার্তাটি প্রদর্শিত হবে।
হার্ভ

1
স্থিতি কোড 1 সহ প্রস্থানিত, কোনও আউটপুট নেই। আমি লো জি জি এর সাথে চেষ্টা করেছি ।
এসজি_

3
আমিও Hello Worldকোনও /var/log/*.logফাইলে দেখি না । @ এসজি_এর আচরণটি, আমার ম্যাক চলমান ম্যাকোস 10.12 এ পুনরায় প্রজননযোগ্য। তদ্ব্যতীত, logger -s 'Hello World'কনসোলে সঠিকভাবে মুদ্রণ করা হয় তবে কোনও ডিস্ক লগ ফাইলে নয়।
গ্রাহাম মিলন

2
আমার জন্য system.log এ প্রদর্শিত হচ্ছে না, তবে যদি আমি কনসোলে "সমস্ত লগগুলি" দেখি তবে এটি সেখানে প্রদর্শিত হবে। অস্বাভাবিক!
হার্ভ

উত্তর:


9

কারণ ম্যাকস সিয়েরায় অ্যাপলের লগিং সিস্টেমটি পরিবর্তিত হয়েছে। তারা অ্যাপল সিস্টেম লগ সুবিধা থেকে একীভূত লগিং এ চলেছে।

বিকাশকারী ডকুমেন্টেশনের লিঙ্ক এখানে।

নিম্নলিখিত "বার্তা 4 ম" পাঠ্যের জন্য নতুন ইউনিফাইড লগটি ফিল্টার করে

$logger -is -t LogTest "Message4Me" 
Oct 15 13:19:27  LogTest[51173] <Notice>: Message4Me

$log show --predicate 'eventMessage contains "Message4Me"' --last 3m

Skipping info and debug messages, pass --info and/or --debug to include.
Filtering the log data using "eventMessage CONTAINS "Message4Me""
Timestamp                       Thread     Type        Activity             PID    
2016-10-15 13:19:27.666574+0900 0x33b62c   Default     0x0                  51173  logger: Message4Me
 --------------------------------------------------------------------------------------------------------------------
Log      - Default:          1, Info:                0, Debug:             0, Error:          0, Fault:          0

=======

আপনি যদি --info যোগ করেন তবে আপনি ইভেন্ট বার্তাটি আউটপুটেও দেখতে পাবেন।

পূর্ববর্তী ওএস সংস্করণগুলিতে লগার কমান্ডটি /var/log/system.log ফাইলে প্রেরণ করত যদি অগ্রাধিকার যথেষ্ট ছিল (যেমন -p সতর্কতা ব্যবহার করে) পাশাপাশি সিসলগ ডেটাবেসে। সিয়েরায় সিস্টেম.লগ যখন লেখা হয় না তখন 10.12.1--এ সতর্কতা-নোট সহ লগার ব্যবহার করা হয় না। এটি একটি বাগ হতে পারে।

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


1
এটি প্রায় একটি লিঙ্ক-শুধুমাত্র এবং "সম্ভবত" উত্তর। আপনার আদেশের অর্থ কী তা একজন সাধারণ মানুষ বুঝতে পারবেন না। দয়া করে কিছু ব্যাখ্যা যুক্ত করুন।
ক্লোনামথ

1
চার মাস পরে, এবং লিঙ্কটি ইতিমধ্যে ভাঙা।
জন স্মিথ

আমি মনে করি বর্তমান লিঙ্কটি হ'ল: বিকাশকারী
অ্যাপ্লিকেশন

2

আমি একটি স্ক্রিপ্ট পেয়ে এই সমস্যাটি সমাধান করেছি যা একটি লঞ্চডেমন থেকে প্রতি 10 মিনিটে নির্দিষ্ট লগগুলিতে নেটকাট ব্যবহার করে। প্রয়োজন অনুযায়ী সম্পাদনা করুন।

#!/bin/bash

while read line    
do
    #drop log entries in the log file you don't want to sent to syslog server
   if [[ "$line" =~ ^.*recurring\ check-in.* || "$line" =~ ^.*Executing\ Policy\ Update\ Inventory.* ]]; then
     /bin/echo "" > /dev/null;
   else
     ## send logs to syslog server using netcat. Edit IP and UDP port as necessary
     echo $line | nc -v -u -w 0 10.10.1.9 514
   fi
done < /var/log/system.log

1

এটি কোনও সত্যিকারের উত্তর নয়, তবে এটি একটি কার্যকরী এবং মন্তব্যের জন্য দীর্ঘ।

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

#!/bin/bash

Brew=/usr/local/bin/brew
Brewup_Log=/Users/user/Library/Logs/brewup.log

echo "$(date "+%Y.%m.%d %H:%M:%S")" >> $Brewup_Log 2>&1
$Brew update 2>&1 >>$Brewup_Log
....
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.