SORU
1 EKİM 2010, Cuma


Logger özel statik veya değil olmalıdır

Logger statik ilan olmalı mı, olmamalı mı? Genellikle bir logger için bildirimi iki türlü gördüm :

    protected Log log = new Log4JLogger(aClass.class);

ya

    private static Log log = new Log4JLogger(aClass.class);

Hangisi kullanılmalıdır? yanlısı ve con de ne?

CEVAP
1 EKİM 2010, Cuma


Statik olmayan formu avantajı doğru code kullanılacak önemsemeden aşağıdaki gibi (soyut) temel sınıf olarak bildirebilirsiniz:

protected Log log = new Log4JLogger(getClass());

Ancak dezavantajı yepyeni logger örneği sınıfın her örneği için oluşturulacak açıkçası. Bu başlı başına pahalı olmayabilir, ama önemli bir yük ekler. Eğer bunu önlemek istiyorsanız, static form yerine kullanmak istiyorum. Ama dezavantajı ise teslim olduğunu beyan her bireyin sınıf ve dikkatli olun, her sınıf bu hakkı code deminden beri kullanılan sırasında logger inşaat çünkü getClass() kullanılamaz statik içerik. Ancak, ortalama IDE bu otomatik tamamlama için bir şablon oluşturabilirsiniz. E. g. logger ctrl space.

Eğer sırayla zaten örneği kaydediciler önbelleği olan bir fabrika tarafından logger alırsanız diğer yandan, daha sonra statik olmayan formu kullanarak fazla yük eklemek olmaz. Örneğin Log4j bu amaçla LogManager.

protected Log log = LogManager.getLogger(getClass());

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog

    EEVblog

    4 NİSAN 2009
  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007
  • Drakinen

    Drakinen

    1 EYLÜL 2008