Ana içeriğe geç

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.