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
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());
Özel yardımcı yöntemler eğer statik ol...
Başlığında değişken tanımlama dosyalar...
Amazon S3: Statik Web Siteleri: Özel E...
Reset veya özel sürüm kullanmaya Gah i...
Nasıl özel yöntemleri, alanları veya i...