কোর কোড নমুনা

/system/software_defined_vehicle/samples এ থাকা SDV কোর সার্ভিসেস কোড স্যাম্পলগুলো আপনাকে আপনার সার্ভিসগুলো তৈরি করা শুরু করতে সক্ষম করে। প্রতিটি স্যাম্পলে একটি README ফাইল রয়েছে, যেখানে এর ব্যবহারের ক্ষেত্রটি বর্ণনা করা হয়েছে।

লগিং এপিআই ব্যবহার করুন

প্রদত্ত নির্দেশাবলী সম্পর্কে আরও জানতে, দেখুন:

মৌলিক লগ নমুনা

logging.cpp ফাইলটি main , system , এবং radio বাফারে লেখার সুবিধা প্রদান করে। উপলব্ধ লগ বাফারগুলোর সংক্ষিপ্ত বিবরণ জানতে, “View alternative log buffers” দেখুন।

  • শর্তসাপেক্ষ লগ, যেমন ALOGI_IF , ছাড়া নমুনাটি চালানোর জন্য:

    logging_sdv_sample
    
  • নমুনাটি চালাতে এবং শর্তসাপেক্ষ লগগুলি প্রিন্ট করতে, যেমন ALOGI_IF :

    LOGIF=1 logging_sdv_sample
    

কাঠামোগত লগিং নমুনা

নমুনা ফাইল: structured_logging.cpp

  • স্যাম্পলটি চালানোর জন্য, যা events লগ বাফারে লগ লেখে:

    structured_logging_sdv_sample
    

event , security এবং stats লগ বাফারগুলো মুক্ত টেক্সটের পরিবর্তে কাঠামোগত ডেটা ধারণ করে।

স্ট্রাকচার্ড ডেটা ইভেন্ট লিস্ট এপিআই ব্যবহার করে লগ করা হয়, যা সর্বদা INFO প্রায়োরিটি এবং নিউমেরিক ট্যাগ আইডি সহ লগ করা হয়।

Android.bp. তে একটি logtags অ্যাট্রিবিউটের মাধ্যমে একটি .logtags ফাইল সংজ্ঞায়িত করা যায়। এটি প্রদান করা হলে, logcat সংখ্যাসূচক ট্যাগ আইডি থেকে ট্যাগের নাম বের করার জন্য এটি ব্যবহার করে। এরপর এই ট্যাগের নামটি স্ট্রাকচার্ড লগ ফিল্টার করার জন্য ব্যবহার করা যেতে পারে। ফাইল ফরম্যাট সম্পর্কে বিস্তারিত জানতে logcat event.logtags ফাইলের কমেন্টটি দেখুন।

বিল্ড প্রক্রিয়ার সময়, সমস্ত logtags ফাইল একত্রিত করে অ্যান্ড্রয়েড সিস্টেম ইমেজের /system/etc/event-log-tags ফাইলে রাখা হয়।

একটি টাইম লগ ফিল্টারিং নমুনা সংকলন করুন

নমুনা ফাইল: compile_time_log_filtering.cpp

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

লগ ফিল্টারিং নমুনা: log_filtering.cpp

  • নমুনাটি চালানোর জন্য, সর্বনিম্ন লগ অগ্রাধিকার WARN এ সেট করুন:

    LOGLEVEL=WARN log_filtering_sdv_sample
    

লগ ফিল্টারিং সিস্টেম প্রোপার্টি দ্বারা প্রভাবিত হয়। সকল লগের জন্য যেখানে :

  • log.tag.<tag>
  • persist.log.tag.<tag>

সিস্টেমের সমস্ত লগের জন্য:

  • log.tag
  • persist.log.tag

নির্বাচিত লগ লেভেল নির্বাচন করার জন্য, যেগুলো ক্রমানুসারে চেক করা হয়, প্রতিটি মান V , D , I , W , বা E তে সেট করা যেতে পারে।

কার্যকরী লগ লেভেল হলো প্রথম সিস্টেম প্রপার্টিতে সেট করা লেভেল, যার একটি ভ্যালু আছে। এই লেভেলটি, __android_log_set_minimum_priority কল ব্যবহার করে অ্যাপ দ্বারা সেট করা লগ লেভেলের চেয়ে কম বা বেশি হতে পারে। যখন কোনো প্রপার্টি সেট করা থাকে না, তখন __android_log_set_minimum_priority দিয়ে কনফিগার করা লেভেলটি প্রযোজ্য হয়।

বিস্তারিত জানতে লগিং সিস্টেমের সংক্ষিপ্ত বিবরণ দেখুন।

  • ডিফল্ট লগ ট্যাগ example_tag এ সেট করে নমুনাটি চালান:

    LOGTAG=example_tag log_filtering_sdv_sample
    

নমুনাটিতে একটি কমেন্ট করা LOG_TAG ম্যাক্রো ডেফিনিশনও রয়েছে, যা আপনি সমস্ত লগ মেসেজের জন্য লগ ট্যাগ সেট করতে ব্যবহার করতে পারেন। এইভাবে সেট করা ট্যাগটি, __android_log_set_default_tag দিয়ে রানটাইমে সেট করা ট্যাগকে ওভাররাইড করে।

যদি LOG_TAG ম্যাক্রোটি সংজ্ঞায়িত না থাকে এবং অ্যাপটি __android_log_set_default_tag কল না করে, তাহলে ডিফল্ট ট্যাগটি হবে getprogname() এর ফলাফল। উদাহরণস্বরূপ, এক্সিকিউটেবলের নাম।