Synopsis
log [command [options]]
log help [command]
log collect [--output path] [--start date/time] [--size num [k|m]] [--last num [m|h|d]]
[--device | --device-name name | --device-udid UDID] [--predicate predicate]
[--directory directory]
log config [--reset | --status] [--mode mode(s)] [--subsystem name [--category name]]
[--process pid]
log emit [--type type] [--subsystem name] [--category name] [--signpost-id id] [--public]
message
log erase [--all] [--ttl]
log show [--archive archive | --file file] [--predicate filter] [--process pid | process]
[--source] [--style default | compact | json | ndjson | syslog]
[--color auto | always | none] [--directory directory] [--start date/time]
[--end date/time] [--[no-]info] [--[no-]debug] [--[no-]pager] [--[no-]signpost]
[--[no-]loss] [--last time [m|h|d]] [--timezone local | timezone]
log stats [--archive archive] [--sort events | bytes] [--count count | all] [--start date/time]
[--end date/time] [--last time [m|h|d]]
[--[no-]pager]
[--overview | --per-book | --per-file | --sender sender | --process process
| --predicate predicate]
log stream [--level default | info | debug] [--predicate filter] [--process pid | process]
[--source] [--style default | compact | json | syslog] [--color auto | always | none]
[--timeout time [m|h|d]] [--type activity | log | trace]
Description
log, os_log, os_trace ve diğer günlük kaydetme sistemleri tarafından oluşturulan sistem genelindeki günlük mesajlarına erişmek için kullanılır. Bazı komutlar root yetkileri gerektirir.
Mevcut komutlar ve seçenekleri:
help Genel yardım veya komut bağımsız değişkenine özel yardım sağlar.
collect Sistem günlüklerini, daha sonra log veya Console gibi araçlarla görüntülenebilecek bir .logarchive dosyası içinde toplar. Bir çıktı yolu belirtilmezse, geçerli dizinde system_logs.logarchive dosyası oluşturulacaktır.
--output path: Arşivi belirtilen yola veya dosyaya kaydeder. Yol bir dizinse, belirtilen dizin içinde system_logs.logarchive adında bir dosya oluşturulur. Yol .logarchive uzantısını içeriyorsa, belirtilen yolda bu adla yeni bir logarchive oluşturulur.
--start date/time İçerik yakalamayı belirtilen tarih ve saatten şu ana kadar olan süreyle sınırlandırır. Aşağıdaki tarih/saat biçimleri kabul edilir: "YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS", "YYYY-MM-DD HH:MM:SSZZZZZ"
--last num [m|h|d] Yakalanan olayları, geçerli zamandan belirtilen süre öncesinde başlayan aralıkla sınırlandırır. Aksi belirtilmedikçe sürenin saniye cinsinden olduğu varsayılır. Örnek: "--last 2m" veya "--last 3h"
--size num [k|m] Kilobayt veya megabayt cinsinden yakalanacak veri miktarıdır. Gerçek boyut istenenden daha fazla olabileceğinden bu bir yaklaşık değerdir. Örnek: "--size 100k" veya "--size 20m"
--device: Eşleştirilmiş cihazdan (bulunan ilk cihaz) sistem günlüklerini toplar.
--device-name name Belirtilen ada sahip eşleştirilmiş cihazdan sistem günlüklerini toplar.
--device-udid UDID Belirtilen UDID'ye sahip eşleştirilmiş cihazdan sistem günlüklerini toplar.
--predicate predicate NSPredicate biçimini veya kısaltmasını takip eden belirli bir koşula (predicate) göre sistem günlüklerini toplar. Bu seçenek, arşiv toplamak için gereken süreyi ve bellek kullanımını önemli ölçüde artırabilir. Örnek: "--predicate "process=='kernel.development'""
--directory directory Yerel günlük deposu yerine, sağlanan günlük deposu dizininden içerik toplar. Dizin, /var/db/diagnostics dizininde bulunana benzer bir sistem günlük kaydetme veritabanı içermeli ve üst dizini de /var/db/uuidtext dizininde bulunana benzer bir uuidtext dizini barındırmalıdır. Bu seçenek, kurtarma ortamı veya harici sürücü gibi önyüklenmemiş (boot edilmemiş) bir sistem bölümünden günlükleri toplamak için kullanışlıdır.
config Günlük sistemi ayarlarını yapılandırır, sıfırlar veya okur. config komutları sistem genelinde veya bir alt sistem (subsystem) üzerinde çalışabilir. Belirtilmemişse sistem genelinde olduğu varsayılır. Alt sistem belirtilmişse kategori isteğe bağlıdır. Root erişimi gerektirir.
--reset | --status Sistem veya belirli bir alt sistem için geçerli ayarları gösterme veya sıfırlama seçeneğidir. Reset veya status belirtilmezse, yapılandırmada bir değişiklik yapılacağı varsayılır. Örneğin, "log config --reset --subsystem com.mycompany.mysubsystem" alt sistemi varsayılan ayarlarına sıfırlayacaktır. "log config --status" mevcut sistem genelindeki günlük kaydetme ayarlarını gösterecektir. "log config --mode "level: default"" sistem günlük seviyesini default (varsayılan) olarak ayarlayacaktır.
--subsystem name Belirtilen alt sistem için modu ayarlar veya alır.
--category name: Belirtilen kategori için modu ayarlar veya alır. Kategori sağlanırsa, alt sistem de zorunludur.--process pid: Belirtilen pid için modu ayarlar.--mode mode(s): Belirtilen modları etkinleştirir. Modlar şunları içerir:
level: {off | default | info | debug} Seviye bir hiyerarşidir, yani debug; debug, info ve default seviyelerini kapsar.
persist: {off | default | info | debug} Kalıcılık (persist) modu bir hiyerarşidir, yani debug; debug, info ve default seviyelerini kapsar.
emit Sistem günlük kaydetme özelliğine bir günlük mesajı gönderir (emit). Bu komut öncelikle test ve hata ayıklama amaçlı kullanılır; belirli türlerde, alt sistemlerde ve kategorilerde günlük girişlerinin oluşturulmasına olanak tanır.
--type type: Gönderilecek günlük mesajının türünü belirtir. Geçerli türler: debug, info, default, error, fault, signpost-event, signpost-begin ve signpost-end. Belirtilmezse default kullanılır.--subsystem name: Günlük mesajı için alt sistem tanımlayıcısını belirtir. Alt sistem tipik olarak günlük mesajını oluşturan bileşeni tanımlayan ters alan adı (reverse DNS) biçimindedir (örn. com.example.myapp). Belirtilmezse mesaj OS_LOG_DEFAULT kullanır.--category name: Alt sistem içindeki kategoriyi belirtir. Kategoriler, bir alt sistem içinde ek düzenleme sağlar. Bu seçenek --subsystem ile birlikte kullanılmadığı sürece hiçbir şey yapmaz. Bir alt sistem belirtilir ancak kategori sağlanmazsa boş bir kategori kullanılır.--signpost-id id: Aralık (interval) işlemleri için signpost tanımlayıcısını belirtir. Bu seçenek, performans ölçüm aralıkları için eşleşen çiftler oluşturmak amacıyla signpost-begin ve signpost-end türleriyle birlikte kullanılır. Tanımlayıcı (id), aralığı benzersiz şekilde tanımlayan pozitif bir tamsayı olmalıdır. Signpost işlemleri için belirtilmezse OS_SIGNPOST_ID_EXCLUSIVE kullanılır.--public: Mesajı herkese açık (public) olarak gönderir.
message Günlük sistemine gönderilecek metin mesajıdır. Bu zorunlu bir bağımsız değişkendir ve komut satırındaki son bağımsız değişken olmalıdır. Varsayılan olarak bu, özel (private) bir dize olarak gönderilir.
erase Seçilen günlük verilerini sistemden siler. Hiçbir bağımsız değişken belirtilmezse, ana günlük veri deposu ve iletim halindeki (inflight) günlük verileri silinir.
--all: Ana günlük veri deposunu, iletim halindeki günlük verilerini, yaşam süresi (TTL) verilerini ve hata ile kusur (fault and error) içeriklerini siler.--ttl: Yaşam süresi (time-to-live) günlük içeriğini siler.
show Sistem günlük veri deposunun, arşivinin veya belirli bir tracev3 dosyasının içeriğini gösterir. Bir dosya veya arşiv belirtilmezse, sistem veri deposu gösterilir. log aracının anlayamayacağı gelecekteki bir sistem sürümüne aitse, EX_DATAERR (65) hatasıyla ve bir hata mesajıyla çıkış yapar. --info ve/veya --debug belirtilmedikçe çıktı yalnızca default seviyesindeki mesajları içerir. --signpost belirtilmedikçe çıktı signpost'ları içermez.
--archive archive Belirtilen arşivde saklanan olayları görüntüler. Arşiv, .logarchive uzantısına sahip geçerli bir günlük arşiv paketi (bundle) olmalıdır.
--file file: Belirtilen .tracev3 dosyasında saklanan olayları görüntüler. Kodu çözülebilmesi için dosyanın geçerli bir .logarchive paketi içinde bulunması veya sistem günlükleri dizininin bir parçası olması gerekir.--[no-]pager: Çıktının less aracılığıyla sayfalandırılmasını etkinleştirir veya devre dışı bırakır.
--predicate filter NSPredicate veya kısaltmaya dayalı olarak, sağlanan koşula göre mesajları filtreler. Bileşik bir koşul veya birden fazla koşul sağlanabilir. Aşağıdaki "KOŞUL TABANLI FİLTRELEME" bölümüne bakın.
--process pid | process Üzerinde işlem yapılacak süreç (process). Birden fazla süreç üzerinde işlem yapmak için bu seçenek birden fazla kez aktarılabilir.
--source: Varsa, mesajlar için sembol adlarını ve kaynak satır numaralarını ekler.--style style: Olayların çıktı biçimlendirmesini kontrol eder:
default İnsan tarafından okunabilir çıktı. ISO-8601 tarihi (mikrosaniye hassasiyeti ve saat dilimi sapması), iş parçacığı (thread) kimliği, günlük türü, etkinlik (activity) kimliği, süreç (process) kimliği, TTL, süreç, alt sistem, kategori ve mesaj içeriği.
compact Kompakt insan tarafından okunabilir çıktı. ISO-8601 tarihi (milisaniye hassasiyeti), kısaltılmış günlük türü, süreç, süreç kimliği, iş parçacığı kimliği, alt sistem, kategori ve mesaj içeriği. Bu çıktı, olay meta verilerini göstermek için default stiline göre daha az yatay alan kullanır.
json JSON çıktısı. Olay verileri, JSON sözlüklerinden oluşan bir dizi olarak sentezlenir.
ndjson Satır sınırlamalı JSON çıktısı. Olay verileri, her biri tek bir satırda gönderilen JSON sözlükleri olarak sentezlenir. Olayların bittiğini belirtmek için, "finished" alanı içeren son bir kayıt gönderilir.
syslog syslog(1) tarafından kullanılan çıktı biçimiyle daha uyumlu olması amaçlanan syslog tarzı çıktı.
--color auto | always | none Renklendirilmiş çıktının görüntülenmesini kontrol eder. Varsayılan olarak log, always seçeneği kullanılarak geçersiz kılınmadığı sürece çıktı bir terminale yönlendirilmediğinde renklendirilmiş çıktıyı devre dışı bırakır.
--directory directory Yerel günlük deposu yerine, sağlanan günlük deposu dizininden içerik okur. Dizin, /var/db/diagnostics dizininde bulunana benzer bir sistem günlük kaydetme veritabanı içermeli ve üst dizini de /var/db/uuidtext dizininde bulunana benzer bir uuidtext dizini barındırmalıdır. Bu seçenek, kurtarma ortamı veya harici sürücü gibi önyüklenmemiş bir sistem bölümünden günlükleri görüntülemek için kullanışlıdır.
--start date/time Belirtilen tarihten itibaren olan içeriği gösterir. Aşağıdaki tarih/saat biçimleri kabul edilir: "YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS", "YYYY-MM-DD HH:MM:SSZZZZZ"
--end date/time: Belirtilen tarihe kadar olan içeriği gösterir. Aşağıdaki tarih/saat biçimleri kabul edilir: "YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS", "YYYY-MM-DD HH:MM:SSZZZZZ"
--last time[m|h|d] | boot Günlük arşivinin sonuna göre verilen süre içinde gerçekleşen veya günlük arşivinde yer alan son önyüklemeden (boot) itibaren başlayan olayları gösterir. Süre dakika, saat veya gün olarak belirtilebilir. Aksi belirtilmedikçe sürenin saniye cinsinden olduğu varsayılır. Örnek: "--last 2m" veya "--last 3h"
--timezone local | timezone İçeriği yerel saat diliminde veya belirtilen bir saat diliminde görüntüler (bkz. tzset(3)). Belirtilmezse çıktı, girdinin kaynak arşive veya dosyaya yazıldığı andaki saat diliminde görüntülenir.
--[no-]info: Çıktıda info seviyesindeki mesajları devre dışı bırakır veya etkinleştirir. (Varsayılan olarak info mesajları görüntülenmez.)--[no-]debug: Çıktıda debug seviyesindeki mesajları devre dışı bırakır veya etkinleştirir. (Varsayılan olarak debug mesajları görüntülenmez.)--[no-]signpost: Çıktıda signpost'ların görüntülenmesini devre dışı bırakır veya etkinleştirir. (Varsayılan olarak signpost'lar görüntülenmez.)--[no-]loss: Çıktıda kayıp olayı (loss event) mesajlarının görüntülenmesini devre dışı bırakır veya etkinleştirir. (Varsayılan olarak kayıp olayı mesajları görüntülenmez.)
stats Bir günlük veri deposunda veya arşivinde yer alan olayların dökümünü gösterir. log stats aracının tüm modlarına aşağıdaki seçenekler sağlanabilir:
--archive archive: Belirtilen arşivde saklanan olayların istatistiklerini görüntüler. Arşiv, .logarchive uzantısına sahip geçerli bir günlük arşiv paketi olmalıdır.--sort events | bytes: Tablolanmış veri çıktısını olay sayısına veya bayt sayısına göre sıralar.--count count | all: Tablolanmış verileri belirtilen satır sayısıyla sınırlandırır veya all seçeneği tablolardaki tüm girdileri görüntüler.--style human | json: İstenen çıktı modunun biçim stilini kontrol eder.
--last time[m|h|d] | boot Günlük arşivinin sonuna göre verilen süre içinde gerçekleşen veya günlük arşivinde yer alan son önyüklemeden itibaren başlayan olayların istatistiklerini gösterir. Süre dakika, saat veya gün olarak belirtilebilir. Aksi belirtilmedikçe sürenin saniye cinsinden olduğu varsayılır.
--start date/time: Belirtilen tarihten itibaren başlayan olayların istatistiklerini gösterir. Aşağıdaki tarih/saat biçimleri kabul edilir: "YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS", "YYYY-MM-DD HH:MM:SSZZZZZ"--end date/time: Belirtilen tarihe kadar olan olayların istatistiklerini gösterir.--[no-]pager: Çıktının less aracılığıyla sayfalandırılmasını etkinleştirir veya devre dışı bırakır.
Buna ek olarak, aşağıdaki çıktı modlarından biri sağlanabilir:
--overview: Tüm arşiv için istatistikleri görüntüler.--per-book: Bir günlük arşivinin alt bölümleri olan günlük kitapçığı (log book) başına istatistikleri görüntüler.--per-file: Arşivdeki dosya başına istatistikleri görüntüler.--sender sender: Belirtilen gönderici imaj (sender image) adı için istatistikleri görüntüler.--process process: Belirtilen kaynak süreç için istatistikleri görüntüler.--predicate predicate: Belirtilen koşulla eşleşen tüm olaylar için istatistikleri görüntüler.
stream Sistem için veya belirtilen bir süreçten gelen etkinlikleri, günlük verilerini veya izleme (trace) mesajlarını canlı olarak yayınlar (stream). Varsayılan olarak komut, sistem genelinde yayın yapıldığını varsayar. --process seçeneğiyle bir süreç kimliği belirtmek sonuçları daraltacaktır.
--level default | info | debug Belirtilen seviyedeki ve altındaki mesajları gösterir. Seviye bir hiyerarşidir. debug seçeneğinin belirtilmesi; debug, info ve default seviyelerini kapsar.
--predicate filter NSPredicate veya kısaltmaya dayalı olarak, sağlanan koşula göre mesajları filtreler. Bileşik bir koşul veya birden fazla koşul sağlanabilir. Aşağıdaki "KOŞUL TABANLI FİLTRELEME" bölümüne bakın.
--process pid | process Üzerinde işlem yapılacak süreç. Birden fazla süreç üzerinde işlem yapmak için bu seçenek birden fazla kez aktarılabilir.
--style default | compact | json | syslog İçeriği farklı bir stilde çıktı olarak verir.
--color auto | always | none Belirli günlük mesajı türlerini vurgular. auto seçeneğinde, çıktının TTY olmadığı algılanırsa vurgulama devre dışı bırakılır.
--source: Varsa, mesajlar için sembol adlarını ve kaynak satır numaralarını ekler.
--timeout time [m|h|d] Yayınlama (stream) işlemini belirtilen süreden sonra zaman aşımına uğratır, örn. "--timeout 5m", "--timeout 1h". Dakika, saat veya gün belirtilmezse saniye kullanılacaktır.
--type activity | log | trace Bir süreçten yayınlanacak olayların türünü belirler. Aksi belirtilmedikçe varsayılan olarak tüm türler yayınlanır. İstenen her olay türü için uygun bir --type seçeneği aktarın.
diagnose Belirtilen bir arşiv için çeşitli tanılama bilgilerini yazdırır. Herhangi bir seçenek olmadan çalıştırmak, --all kullanmakla aynıdır.
--archive archive Tanılama yapılacak arşiv.
--verbose: Ek hata ayıklama bilgilerini çıktı olarak verir.--json: JSON biçiminde çıktı verir.
--process process Yalnızca belirtilen süreç için ilgili karantina (quarantine) bilgilerini yazdırır.
--all: Mevcut tüm tanılamaları yazdırır.--erase:logdarşivi temizlediğinde gönderilen zaman damgalarını yazdırır.--logd-starts:logdbaşladığında gönderilen zaman damgalarını yazdırır.--time: Belirtilen her günlük kitapçığı için başlangıç yakalama zamanını yazdırır.--quarantine: Süreç başına ayrıntılı karantina bilgilerini yazdırır.
repack Bir logarchive içindeki, bir koşulla eşleşen tüm günlükleri, yalnızca eşleşen günlükleri içeren yeni bir logarchive içinde yeniden paketler. Varsayılan olarak info ve debug mesajlarını içerir.
--archive archive: Yeniden paketlenecek arşiv.--no-timeout: Yeniden paketleme için varsayılan zaman aşımını (5 dakika) kaldırır. Bu genellikle gerekli değildir.--fatal-warnings: Tüm uyarıları hata olarak kabul eder ve yeniden paketlemeyi durdurur.--predicate predicate: Bir koşulla eşleşen olayları dahil eder. Aşağıdaki "KOŞUL TABANLI FİLTRELEME" bölümüne bakın.--verbose: Hata ayıklama için ek çıktılar içerir.--mutate: logarchive dosyasını kopyalamadan 'yerinde' (in-place) değiştirir. Bu yıkıcı bir işlemdir ve geri alınamaz.--skip-uuid-purge: Sonuç arşivinden kullanılmayan UUID'lerin temizlenmesini atlar.
Examples
Yakın zamandaki günlük mesajlarını görüntüleme:
log show --last 1h
Canlı günlük mesajlarını yayınlama:
log stream
Bir test günlük mesajı gönderme:
log emit "Test message"
Alt sistem bilgisiyle birlikte bir hata mesajı gönderme:
log emit --type error --subsystem com.example.app "An error occurred"
Performans analizi için bir signpost olayı gönderme:
log emit --type signpost-event "Performance marker reached"
Performans ölçümü için bir signpost aralığı başlatma:
log emit --type signpost-begin --signpost-id 42 "Operation started"
Performans ölçümü için bir signpost aralığını sonlandırma:
log emit --type signpost-end --signpost-id 42 "Operation completed"
Alt sistem bilgisiyle birlikte bir signpost aralığını başlatma ve sonlandırma:
log emit --subsystem com.example.app --category performance \
--type signpost-begin --signpost-id 123 "Database query started"
log emit --subsystem com.example.app --category performance \
--type signpost-end --signpost-id 123 "Database query completed"
Belirli bir komut için yardımı görüntüleme:
log help show
log help emit
Predicate-Based Filtering
--predicate seçeneği aracılığıyla koşul tabanlı filtrelerin kullanılması, kullanıcıların sağlanan filtre kriterlerine göre mesajlara odaklanmasını sağlar. Koşul tabanlı filtrelemenin kullanımı hakkında ayrıntılı bilgi için lütfen Predicate Programming Guide kılavuzuna başvurun: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html.
Filtre bağımsız değişkeni, NSPredicate kurallarını takip eden bir veya daha fazla kalıp yan tümcesini (pattern clause) tanımlar. Desteklenen anahtarların tam listesi için log help predicates komutuna bakın. Desteklenen anahtarlar şunları içerir:
eventType Olayın türü: activityCreateEvent, activityTransitionEvent, logEvent, signpostEvent, stateEvent, timesyncEvent, traceEvent ve userActionEvent.
eventMessage Mesaj metni içindeki kalıp veya bir günlük/izleme girişinin etkinlik adı.
messageType logEvent ve traceEvent için, mesajın kendi türü: default, info, debug, error veya fault.
process Olayı başlatan sürecin adı.
processImagePath Olayı başlatan sürecin tam yolu.
sender Olayı başlatan kütüphanenin, çerçevenin (framework), çekirdek uzantısının (kernel extension) veya mach-o imajının adı.
senderImagePath Olayı başlatan kütüphanenin, çerçevenin, çekirdek uzantısının veya mach-o imajının tam yolu.
subsystem Bir olayı günlüğe kaydetmek için kullanılan alt sistem. Yalnızca os_log(3) API'leri ile oluşturulan günlük mesajlarıyla çalışır.
category Bir olayı günlüğe kaydetmek için kullanılan kategori. Yalnızca os_log(3) API'leri ile oluşturulan günlük mesajlarıyla çalışır. Kategori kullanıldığında, alt sistem filtresi de sağlanmalıdır.
Predicate-Based Filtering Examples
Belirli bir alt sistem için filtreleme: log show --predicate 'subsystem == "com.example.my_subsystem"'
Belirli bir alt sistem ve kategori için filtreleme: log show --predicate '(subsystem == "com.example.my_subsystem") && (category == "desired_category")'
Belirli bir alt sistem ve kategoriler için filtreleme: log show --predicate '(subsystem == "com.example.my_subsystem") && (category IN { "category1", "category2" })'
Belirli bir alt sistem ve gönderici(ler) için filtreleme: log show --predicate '(subsystem == "com.example.my_subsystem") && ((senderImagePath ENDSWITH "mybinary") || (senderImagePath ENDSWITH "myframework"))'
Predicate-Based Filtering Examples With Log Line
log show system_logs.logarchive --predicate 'subsystem == "com.example.subsystem" and category contains "CHECK"'
Timestamp Thread Type Activity PID 2016-06-13 11:46:37.248693-0700 0x7c393 Default 0x0 10371 timestamp: [com.example.subsystem.CHECKTIME] Time is 06/13/2016 11:46:37
log show --predicate 'processImagePath endswith "hidd" and senderImagePath contains[cd] "IOKit"' --info
Timestamp Thread Type Activity PID 2016-06-10 13:54:34.593220-0700 0x250 Info 0x0 113 hidd: (IOKit) [com.apple.iohid.default] Loaded 6 HID plugins
Shorthand-Based Filtering
NSPredicate tabanlı sözdizimine alternatif olarak --predicate seçeneği aracılığıyla kısaltma filtrelerini kullanın. Desteklenen anahtarların tam listesi için log help shorthand komutuna bakın. Desteklenen anahtarlar şunları içerir:
message, m, veya omit Mesaj metni içindeki kalıp.
process, p Olayı başlatan sürecin adı.
processImagePath, pip Olayı başlatan sürecin tam yolu.
pid Olayı başlatan sürecin kimliği.
subsystem, s Bir olayı günlüğe kaydetmek için kullanılan alt sistem. Yalnızca os_log(3) API'leri ile oluşturulan günlük mesajlarıyla çalışır.
category, c Bir olayı günlüğe kaydetmek için kullanılan kategori. Yalnızca os_log(3) API'leri ile oluşturulan günlük mesajlarıyla çalışır.
type Bir mesaj türü: default, info, debug, error, fault, signpost, statedump veya activity.
Desteklenen operatörler şunları içerir:
=, is Eşitlik.
!=, <> Eşitsizlik.
:, contains Alt dize içerir.
!: Alt dize içermez.
:^ Bununla başlar.
endswith Bununla biter.
<=, >= Sayısal karşılaştırma.
~/regex/ Düzenli ifade (Regular expression).
Values
Değerler, mantıksal VEYA (OR) operatörü olarak dikey bir çizgi (|) kullanılarak bir araya getirilebilir. Eşitlik operatörünün sağ tarafında dikey bir çizgi kullanıldığında, karşılaştırma büyük/küçük harfe duyarlı hale gelir.
Shorthand-Based Filtering Examples
Belirli bir alt sistem için filtreleme: log show --predicate 's=com.example.my_subsystem'
Mesajları belirli bir metni içeren ve kategorisi "network" içerenler için filtreleme: log show --predicate 'c:network and "subtext to find"'
Belirli bir alt sistem ve kategoriler için filtreleme: log show --predicate 's=com.example.my_subsystem and category=category1|category2'
Süreçlerden gelen hatalar için filtreleme: log show --predicate 'p=myprocess|yourprocess and type=error'
Environment
Aşağıdaki ortam değişkenleri log komutunun yürütülmesini etkiler:
LOG_COLORS log show komutundan gelen metin çıktısının rengini kontrol eder. Bu dize, f'nin ön plan rengi ve b'nin arka plan rengi olduğu fb biçimindeki çiftlerin birleşimidir.
Renk belirteçleri aşağıdaki gibidir:
a siyah (black) b kırmızı (red) c yeşil (green) d kahverengi (brown) e mavi (blue) f eflatun (magenta) g camgöbeği (cyan) h açık gri (light grey) A kalın siyah, genellikle koyu gri olarak görünür B kalın kırmızı C kalın yeşil D kalın kahverengi, genellikle sarı olarak görünür E kalın mavi F kalın eflatun G kalın camgöbeği H kalın açık gri; parlak beyaz gibi görünür x varsayılan ön plan veya arka plan
Yukarıdakilerin standart ANSI renkleri olduğunu unutmayın. Gerçek görüntü, kullanılan terminalin renk yeteneklerine bağlı olarak farklılık gösterebilir.
Özniteliklerin sırası aşağıdaki gibidir:
- zaman damgası (timestamp)
- iş parçacığı tanımlayıcısı (thread identifier)
- olay türü (event type)
- etkinlik tanımlayıcısı (activity identifier)
- süreç tanımlayıcısı (process identifier)
- yaşam süresi (time-to-live)
- süreç adı (process name)
- gönderici imaj adı (sender image name)
- alt sistem (subsystem)
- kategori (category)
- olay mesajı (event message)
- vurgu rengi (highlight color)
Varsayılan değer "xxxxxxxxxxxxFxdxcxExxxxA"dır, yani kalın eflatun süreç adı, sarı gönderici, yeşil alt sistem, kalın mavi kategori ve vurgulanan satırlar için koyu gri arka plan.
LOG_STYLE log show komutunun varsayılan çıktı stilini kontrol eder: default, compact, json veya syslog.
OS_ACTIVITY_MODE Başlatılan süreçlerin modunu şuna değiştirir: info info seviyesindeki mesajları etkinleştirir. info seviyesi devre dışı bırakılmış günlük tercihlerini geçersiz kılmaz. debug info seviyesindeki mesajları da içeren debug seviyesindeki mesajları etkinleştirir. info seviyesi veya debug seviyesi devre dışı bırakılmış günlük tercihlerini geçersiz kılmaz.
OS_ACTIVITY_STREAM Etkinleştirilen yayınlama (streaming) türünü değiştirir. live IPC kullanarak süreçten canlı yayınlama.
OS_ACTIVITY_PROPAGATE_MODE Ayarlanırsa, mod ayarlarını etkinlikler (activities) aracılığıyla yayar.
Files
log show ve log stream komutlarının yürütülmesini ~/.logrc konumunda bulunan bir yapılandırma dosyası ile kontrol edebilirsiniz. Aşağıdaki gibi bir ~/.logrc verildiğinde:
.logrc - default log(1) arguments, handy predicate shortcuts
show: --style compact --last 1h
--info: # turn back off with --no-info--no-debug: # turn back on with --debug
predicate: app 'process == "application"' errors 'process == "application" and messageType == error' s 'process == "application" and ' # adjacent strings 'subsystem == "com.example.support"' # get merged
log show komutu otomatik olarak şu bağımsız değişkenler aktarılmış gibi çalışacaktır:
--style compact --last 1h --info --no-debug
Açıkça belirtilen seçenekler, ~/.logrc tarafından sağlanan bağımsız değişkenleri geçersiz kılacaktır. Ayrıca, --predicate app ile çalıştırmak şununla aynı olacaktır:
--predicate 'process == "application"'
~/.logrc dosyasının sözdizimi; yorumlar, bölüm başlıkları, seçenekler, sözcükler ve tek tırnaklı dizelerden oluşur. Yorumlar diyez (#) karakteriyle başlar ve satırın sonuna kadar devam eder. Aksi takdirde, içerikler boşlukla ayrılır.
~/.logrc dosyasının yapısı bölümlere ayrılmıştır. Bölüm başlıkları bir sözcük ve iki nokta üst üste ile belirtilir. Üç tür bölüm vardır. show: ve stream: bölümleri benzer şekilde çalışır. İçerikleri, komut satırına girilmiş gibi ilgili komuta aktarılacak olan birebir seçenekler ve bağımsız değişkenlerdir. predicate: bölümü koşullar (predicates) için takma adlar (aliases) oluşturur. Şunun gibi çiftlerden oluşur:
word 'predicate'
burada word harflerin birleşimidir (muhtemelen basit, yazması kolay bir harf kombinasyonu) ve predicate, yukarıdaki KOŞUL TABANLI FİLTRELEME bölümünde açıklandığı gibi bir filtreleme mantığıdır. Koşul tek tırnaklarla sınırlandırılır, ancak bitişik tırnaklı öğeler birbirine "yapıştırılır"; bu, uzun koşulların okunmasını ve yazılmasını kolaylaştırmaya yardımcı olur.
See Also
os_log(3), os_trace(3)
Darwin May 10, 2016 Darwin