Ekleyenlerin listesi
Kaydedici, verileri aynı anda birkaç dosyaya kaydetmenize olanak tanır. Bu tür çıktı veri akışlarına ekleyiciler (eklemeden) denir. Pek çok standart ekleyici vardır, bu nedenle yalnızca en popüler olanları ele alacağız:
ekleyenler | Tanım | |
---|---|---|
1 | Konsol | Verileri konsola yazdırır |
2 | dosya | Verileri bir dosyaya verir |
3 | DailyRollingDosyası | Verileri bir dosyaya çıkarır, dosyanın üzerine çevrimsel olarak yazılır |
4 | zaman uyumsuz | Eşzamansız olarak başka bir ekleyiciye veri yazmanıza izin verir |
5 | Priz | Verileri belirli bir sokete yazar |
6 | JDBC | JDBC protokolünü kullanarak veritabanına mesaj yazar |
7 | JPA | JPA protokolünü kullanarak veritabanına mesaj yazar |
8 | HTTP | Olayları HTTP protokolü aracılığıyla uzak bir sunucuya gönderir |
9 | SMTP | İletileri bir arabellekte depolar ve ardından e-posta olarak gönderir |
Tüm ekler için iyi belgeler resmi web sitelerindedir .
Ve aşağıda en popüler ve basit olanlarını ele alacağız.
Konsol Ekleyicisi
En basit apenderConsoleApender
. Tahmin edebileceğiniz gibi, mesajlarını konsola yazmakla yetiniyor. Bizim için birkaç ilginç parametresi var:
Öznitellikler | ||
---|---|---|
1 | isim | Ekleyen adı |
2 | filtre | Bazı mesajları filtrelemenize izin verir |
3 | düzen | Çıktı alındığında mesajların biçimlendirmesini belirtir. |
4 | hedef | Nereye yazılacağını belirtir: SYTEM_OUT veyaSYSTEM_ERR |
Yapılandırmak çok kolaydır:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
Dosya Ekleyici
En kullanışlı apenderFileAppender
. ConsoleAppender
Mesajlarını bir dosyaya yazmasının aksine . Bu, uygulamanız sunucuda bir yerde çalışırken çok kullanışlıdır. Birçok parametreye sahiptir, çünkü farklı işletim sistemlerinde dosya yazabilmelidir.
Ancak sadece en popülerlerini ele alacağız.
1 | isim | Ekleyenin adını belirtir |
2 | filtre | Bazı mesajları filtrelemenize izin verir |
3 | düzen | Çıktı alındığında mesajların biçimlendirmesini belirtir. |
4 | dosya adı | Mesajların yazılacağı dosyanın adını belirtir |
5 | eklemek | Eğer true , o zaman mesajlar eski günlüğe eklenir, eğer false - günlük dosyası uygulama her başlatıldığında yeniden oluşturulur. |
6 | tamponBoyutu | Arabellek boyutunu bayt cinsinden ayarlar |
7 | hemenFlush | Eğer true , o zaman her mesaj aslında hemen diske yazılır (arabellek olmadan). Günlük yavaş çalışmaya başlar, ancak bu, program çöktüğünde sizi veri kaybetmekten kurtarır. |
Dosyalarla nasıl iyi çalışılacağını zaten biliyorsunuz, dolayısıyla bu ayarlar sizin için yeni bir şey değil. Böyle bir günlükçüyü yapılandırmak, bir konsol günlükçüsünden bile daha kolaydır:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<File name="MyFile" fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
RollingFileAppender
En popüler apenderRollingFileAppender
. Bunun aksine FileAppender
, günlüğü birçok küçük dosyaya bölmenize olanak tanır. Bu, büyük günlükler için çok önemlidir. Ayrıca yeni dosyalar yazılmaya başladıktan sonra eski dosyalarla ne yapılacağına dair kurallar belirlemenizi sağlar.
Ve bu apender'ın neredeyse yüz farklı ayarı var. Bağlantıda onlar hakkında daha fazla bilgi edinebilirsiniz .
Bu ekleyicinin en popüler özelliklerini göz önünde bulundurun:
Öznitellikler | ||
---|---|---|
1 | isim | Ekleyenin adını belirtir |
2 | filtre | Bazı mesajları filtrelemenize izin verir |
3 | düzen | Çıktı alındığında mesajların biçimlendirmesini belirtir. |
4 | dosya adı | Mesajların yazılacağı dosyanın adını belirtir |
5 | dosyaPattern | Artık yazılmayan arşiv dosyaları için bir adlandırma modeli belirtir. |
6 | politika | Dosyanın üzerine yazılmaya başlaması gereken durumu belirtir |
7 | strateji | Eski dosyalarla ne yapılacağını açıklar: arşiv, kaç gün süreyle saklanacağı, vb. |
İşte iyi bir örnek:
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
Parametre, filePattern
eski günlüklerin arşivleri için bir şablon belirtir. Ayrıca iki tane vardır, tetiklendiğinde yeni bir dosya yazılacaktır:
TimeBasedTriggeringPolicy
– yeni bir gün başlarsa çalışır (mevcut tarih değişir)SizeBasedTriggeringPolicy
– dosya boyutu 250 MB'a ulaşırsa çalışacaktır
GO TO FULL VERSION