2015-10-07 15 views
6

Kullanıcıların ve parolanın, bunları içeren bir Http POST iletisini günlüğe kaydettiğimde log4j günlüklerimden gizlemek istiyorum. Ben bu örnekte gerçek kullanıcı adı ve şifreyi kaldırdık:Web üzerinden gönderilen kullanıcı adı ve parola, log4j günlüklerinden nasıl gizlenir

2015-10-07 11:19:41 DEBUG wire:72 - http-outgoing-3 >> "POST /login?IDToken1=<Username in plain text is seen here>&IDToken2=<Password in plain text is seen here> HTTP/1.1[\r][\n]" 

Ben DEBUG olarak ayarlanmış rootlogger olan bir log4j.properties dosyası var. Ben sadece INFO düzeyinde oturum yapmak için aşağıdaki satırları kullanmaya çalıştı:

log4j.logger.org.apache.http.headers=INFO 
log4j.logger.org.apache.http.client=INFO 
log4j.logger.org.apache.http.wire=INFO 

ancak bunların hiçbiri çalışır. Ben bu olsa denedim ve işe yaradı:

log4j.logger.org.apache.http=INFO 

bu tek sorun DEBUG düzeyde tüm http günlüğü çok gizli olmasıdır. Mümkünse sadece kullanıcı adı ve şifreyi gizlemek istiyorum. Ya parçacığı ayarlamak veya ince ayar yapmak için yukarıdaki örnekte mesajı gizleyebilirim.

Bu mümkün mü?

+1

Err, bunu kaydetme? – EJP

+0

Dosya ekleyicisini, bilgileri içermeyen özel bir düzeniyle kullanma hakkında ne düşünüyorsunuz? Veya belirli bilgileri filtrelemek için ekleyiciyi genişletebilirsiniz. Veya bu belirli mesajı (/ login *) iptal eden bir özel filtre mi? –

+1

Merhaba, EJP. Apache http sınıflarında DEBUG seviyesinde varsayılan olarak kaydedilir ve log4j kullanarak diğer birçok şeyi günlüğe kaydederim, böylece gerçekten oturum açamıyorum. Belirli ve log başlıklarını, istemci ve INFO düzeyinde tel olmaya çalıştım ama işe yaramadı. Stig Tore, önerilerinize bir göz atacağım. Yanıtlarınız için teşekkürler/Jan – jnaslund

cevap

0

İşte log4j conf. Kullanıyorum:

# (org.apache.commons.httpclient.Wire) 
log4j.logger.httpclient.wire.header = INFO 
log4j.logger.httpclient.wire.content = INFO 
log4j.logger.org.apache.commons.httpclient = INFO 
İlgili konular