2011-01-12 8 views
11

Çok satırlı bir metin var "a \ nb \ nc"; Örneğin, "hata ayıklama" yöntemiyle oturum açtığımda, yalnızca bir günlük alırım;Çok satırlı bir metin için satır başına günlük görüntüleme

bu beklenen davranış ama sonra hatlar dışında, ilk çıkış sol çok gösterildi:

1234 [1] [DEBUG] Test - a 
b 
c 
1235 [1] [DEBUG] Test - ... 

basit bir çözüm elde etmek için her satıra bir günlüğünü oluşturmak için:

1234 [1] [DEBUG] Test - a 
1235 [1] [DEBUG] Test - b 
1236 [1] [DEBUG] Test - c 
1237 [1] [DEBUG] Test - ... 

_

otomatik taşıma ya da ben bu yönetmek için basit sarmalayıcı yazmalıyım bu tür sahip olmanın bir yolu var mı ayar?

_ önceden

teşekkürler.

+1

Bunun mümkün olduğunu düşünmüyorum. Bir sarmalayıcı yazarsanız - sarıcı '\ n' üzerinde bölünecek ve 'logger.log' satır sayısı kadar çok kez çağrılacaktır. İyi değil diyorum. – Nishant

+0

@Nishant: Sorunu düşündüğünüz için teşekkür ederiz. Bir sarmalayıcı, şu anki uygulayıcı türümden miras alan özel bir ekleyici olabilir veya daha iyisi, herhangi bir ekleyiciyi sarmalayabilecek bir genel dekoratör olabilir. Sonra XML yapılandırma dosyasında bu tür yapıyı nasıl ifade edeceğimi merak ediyorum. Cevabınız için – Pragmateek

cevap

8

Mümkün değil ve önerilmez.

İlk örneğinizde, iki log ifadesi bulunduğunu, ikinci örneğinizde ise bunlardan dördünün bir bakışta olduğunu varsayabiliriz.

Bir günlük deyimi, neler olduğu ve ne zaman olduğu hakkında tek bir kaynak bilgi sağlamalı ve bu bilgilerin bir şekilde yararlı olması gerekir.

Yığın izlemesi nedeniyle 30 veya üstü satır boyunca yayılacak olan bir özel durum gibi bir hata ifadeniz olup olmadığını düşünün. Bu sizin durumunuzda 30 hataya benzeyecek ve otomatik bir araç da 30 hata olarak rapor edebilir. Bu yanlış bilgilendirme ve kaçınılmalıdır.

"Bir günlük deyimi! = Bir yazılı günlüğü", daha karmaşık günlüğe kaydetme durumlarıyla uğraşırken aynı anda birden fazla iş parçacığının aynı anda aynı dosyaya yazılmasıyla veya daha kötüsü, birden çok JVM ile senkronizasyona neden olabilir Bu şekilde.

Eğer "çok uzaktaki" şey size çok keder veriyorsa, oluşturulmamış her satırın başına 8 boşluk eklenmesi gibi, oluşturulan günlük dosyasında bazı işlemlerin yapılmasını öneririm [DEBUG], [INFO], ... içerir.

+0

teşekkürler; Gerçekten de araçların kullanımıyla ilgili argümanınıza katılıyorum. Benim kullanımım olmadığını düşündüm, iyi bir uygulama gibi görünmüyor. – Pragmateek