Logger
ListrLogger
renderların belirli bir çıktı formatına sahip olmasını sağlayan ortak bir arayüzdür.
ListrLogger, her render için belirli bir ölçüde kullanılır. ListrLogger, renderların konsol çıktıları ile bir ara katman görevi görür ve çıkış akışlarını stdout
ve stderr
üzerinden ProcessOutput aracılığıyla yönetir. Bu süreçte, "render işlemi esnasında bu akışların tam kontrolünü elinde tutabilir." — ListrLogger
Kayıt Seviyeleri
ListrLogger için kayıt seviyeleri, ListrLogger örneği oluşturulurken dinamik olarak eklenir ve örneğin stil bölümünü etkiler.
Varsayılan olarak, ListrLogLevels
metin tabanlı renderlar için kullanılır. DefaultRenderer gibi renderlar, metin tabanlı renderlara kıyasla daha fazla durum gerektiren stillere ihtiyaç duyar; bu nedenle özel kayıt seviyeleri ListrDefaultRendererListrLogLevels
eklenir.
Stil
ListrLogger'ın stili, ListrLoggerOptions
aracılığıyla özelleştirilebilir. Her render bir şekilde ListrLogger'ı kullandığı için, bu işlevsellik renderları doğrudan özelleştirmek için kullanılabilir.
Simge ve Renkler
ListrLogger, ListrLogger'ı kullanan ilgili render seçenekleri içindeki açıklanan alanlar aracılığıyla her render için özelleştirilebilir.
Desteklenen Renderlar
Desteklenen renderların icon
ve color
bölümü, ListrLoggerStyleMap
biçimindedir. ListrLogger'a yeni stil seçenekleri ekleyerek, her mümkün olan görevin simgelerini ve renklerini değiştirebilirsiniz.
::: details Kod Örneği
ListrLogger, her giriş için ön ekler ve son ekler biçiminde alanlara sahip olabilir.
Renderlar ile nasıl kullanılacağına dair presets bölümüne bakınız.
Presetler
Preset mekanizması, zaman damgaları
veya zamanlayıcılar
gibi ek verileri göstermek için kullanılır. Bu, alanların koşullu gösterimi veya koşullu stillendirme ile dinamik hale getirilmesine esneklik sağlar.
Farklı renderlar, seçilen renderın stiline uyduğu ölçüde farklı presetleri destekler. Presetler, ListrLogger ile doğrudan bağlanmamış olsa da, genellikle günlüğe girme girişi açısından ön ekler ve son ekler formunda alanlar elde etmek için mekanizmayı kullanmaktadır.
Belirli bir alana önceden tanımlanmış preset geçirebilir veya presetin alanlarını geçersiz kılmak suretiyle presetin davranışını değiştirebilirsiniz, çünkü preset nesne olarak tasarlanmıştır.
Preset Zamanlayıcı
Bu preset, verilen bir olayın ne kadar süre önce gerçekleştiğini göstermek için kullanılabilir.
Bu preset, _DefaultRenderer, VerboseRenderer ve SimpleRenderer üzerinde hem Listr hem de Task düzeyi seçeneklerinde mevcuttur._
::: details Kod Örneği
Kod Örneği
Kod Örneği
ile birkaç denemeden sonra, bu, çok sayıda farklı render uygulaması ile paylaşılan ve bunların aynı şekilde kullanmadığı logger'ı değiştirmek için en esnek çözüm oldu.
::: warning
ListrLogger için bazı seçenekler, seçilen render aracılığıyla zorla eklenir. Bu, timestamp
veya icon
ve style
gibi global alan seçenekleri gibi seçeneklerdir. Bu seçenekleri özel bir logger oluşturmadan sergilemek istememden kaynaklanmaktadır; çünkü bu daha ileri düzey kullanım senaryolarına girer.