2008-10-02 25 views

cevap

23

Log4J, Java tabanlı bir kayıt aracıdır. NTEventLogAppender sınıfı "NT olay günlüğü sistemine eklemek" için kullanılabilir.

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/nt/NTEventLogAppender.html

Düzenleme:: "selefi üzerinde önemli iyileştirmeler sağlayan" daha yeni bir sürümü, Log4j 2 yoktur burada belgelere bakın

+0

Log4J iyi bir seçimdir çünkü kodunuz temeldeki günlüğe kaydetme hedefine ve XML yoluyla kolayca yapılandırılmış olmasına bağlı değildir. –

+1

NTEventLogAppender ile ilgili büyük sorun, istemediğiniz yerlerin her türünün yerleştirilmesi için yerel bir DLL gerektirmesidir. –

4

Ayrıca, Windows XP Pro ve üstündeki eventcreate komutunu da kullanabilirsiniz.

String command = "eventcreate " 
       + " /l APPLICATION" 
       + " /so \"" + applicationObjectName + "\"" 
       + " /t " + lvl 
       + " /id " + id 
       + " /d \"" + description + "\""; 

Runtime.getRuntime().exec(command); 
ev XP için

ve alt, sen wscript.shell.eventcreate yöntemini kullanarak yazar bir vbs uygulama oluşturabilir. Bununla birlikte, kaynak belirtme yeteneğini feda edersiniz.

Örnek: http://www.ozzu.com/mswindows-forum/posting-event-log-with-batch-files-t76791.html

+0

applicationObjectName, lvl, etc nasıl tanımlanır – ChanGan

7

herhangi yerli DLL gerek kalmadan direkt olarak olay günlüğüne yazmaya JNA kullanabilirsiniz. Çeşitli olay günlüğü yöntemleri için Advapi32 ve Advapi32Util sınıflarına bakın (JNA 3.2.8'den beri gemiler).

Log4j kullanıyorsanız, NTEventLogAppender yerine Log4jna'u düşünün.

+2

Log4jna [GITHUB] 'a taşındı (https: //github.com/dblock/log4jna), yukarıdaki bağlantı çalışmayı durdurursa. – Qben

İlgili konular