/system/software_defined_vehicle/samples içindeki SDV Core Services kod örnekleri, hizmetlerinizi oluşturmaya başlamanızı sağlar. Her örnekte, kullanım alanını açıklayan bir README dosyası bulunur.
Logging API'yi kullanma
Verilen talimatlar hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:
Temel günlük örneği
logging.cpp, system ve radio arabelleklerine yazma işlemi sunar.
Kullanılabilir günlük arabelleklerinin kısa bir açıklamasını okumak için
Alternatif günlük arabelleklerini görüntüleme başlıklı makaleyi inceleyin.main
Örneği koşullu günlükler olmadan çalıştırmak için (ör.
ALOGI_IF):logging_sdv_sampleÖrneği çalıştırmak ve
ALOGI_IFgibi koşullu günlükleri yazdırmak için:LOGIF=1 logging_sdv_sample
Yapılandırılmış günlük kaydı örneği
Örnek dosya: structured_logging.cpp
Günlükleri
eventsgünlük arabelleğine yazan örneği çalıştırmak için:structured_logging_sdv_sample
event, security ve stats günlük arabellekleri, serbest metin yerine yapılandırılmış verileri tutar.
Yapılandırılmış veriler, her zaman INFO önceliği ve sayısal etiket kimliğiyle kaydedilen etkinlik listesi API'si kullanılarak kaydedilir.
.logtags dosyası, Android.bp. içinde logtags özelliğiyle tanımlanabilir.
Sağlandığında logcat, etiketin adını sayısal etiket kimliğinden türetmek için bunu kullanır. Etiket adı daha sonra yapılandırılmış günlükleri filtrelemek için kullanılabilir. Ayrıntılar ve dosya biçiminin açıklaması için logcat event.logtags dosyasındaki yoruma bakın.
Derleme işlemi sırasında tüm logtags dosyaları birleştirilir ve Android sistem görüntüsündeki /system/etc/event-log-tags dosyasına yerleştirilir.
Zaman günlüğü filtreleme örneği derleme
Örnek dosya: compile_time_log_filtering.cpp
Bu örnek, yürütülebilir dosyadan bazı günlükleri kaldırmak için ayarlayabileceğiniz makrolar içerir. Ayrıntılar için kaynak koduna bakın.
Günlük filtreleme örneği: log_filtering.cpp
Örneği çalıştırmak için minimum günlük önceliğini
WARNolarak ayarlayın:LOGLEVEL=WARN log_filtering_sdv_sample
Günlük filtreleme, sistem özelliklerinden etkilenir.
log.tag.<tag>persist.log.tag.<tag>
Sistemdeki tüm günlükler için:
log.tagpersist.log.tag
Sırayla kontrol edilen seçili günlük düzeyini belirlemek için her değer V, D, I, W veya E olarak ayarlanabilir.
Geçerli günlük düzeyi, değer içeren ilk sistem özelliğinde ayarlanan düzeydir. Bu düzey, __android_log_set_minimum_priority çağrısıyla uygulama tarafından ayarlanan günlük düzeyinden daha düşük veya daha yüksek olabilir. Özelliklerin hiçbiri ayarlanmadığında __android_log_set_minimum_priority ile yapılandırılan düzey geçerli olur.
Ayrıntılar için Günlük sistemi genel bakışı başlıklı makaleyi inceleyin.
Varsayılan günlük etiketini
example_tagolarak ayarlayarak örneği çalıştırın:LOGTAG=example_tag log_filtering_sdv_sample
Örnekte, tüm günlük mesajları için günlük etiketini ayarlamak üzere kullanabileceğiniz yorum satırı haline getirilmiş bir LOG_TAG makro tanımı da yer alır. Bu şekilde ayarlanan etiket, çalışma zamanında __android_log_set_default_tag ile ayarlanan etiketi geçersiz kılar.
LOG_TAG makrosu tanımlanmamışsa ve uygulama __android_log_set_default_tag işlevini çağırmıyorsa varsayılan etiket, getprogname() işlevinin sonucudur. Örneğin, yürütülebilir dosyanın adı.