2008-10-02 37 views

Trả lời

23

Log4J là tiện ích ghi nhật ký dựa trên Java. Lớp NTEventLogAppender có thể được sử dụng để "nối thêm vào hệ thống nhật ký sự kiện NT". Xem tài liệu ở đây:

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

Chỉnh sửa: "cung cấp những cải tiến đáng kể so với người tiền nhiệm của nó" Có một phiên bản mới hơn, Log4j 2

+0

Log4J là một lựa chọn tốt vì mã của bạn không được kết hợp với mục tiêu ghi nhật ký cơ bản và dễ dàng được định cấu hình thông qua XML. –

+1

Vấn đề lớn với NTEventLogAppender là nó đòi hỏi một DLL gốc được đặt trong tất cả các loại nơi bạn không muốn nó. –

4

Bạn cũng có thể sử dụng lệnh eventcreate trên Windows XP Pro trở lên.

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

Runtime.getRuntime().exec(command); 

Đối với nhà XP và thấp hơn, bạn có thể tạo ứng dụng vbs viết bằng phương pháp wscript.shell.eventcreate. Tuy nhiên bạn hy sinh khả năng xác định nguồn.

Ví dụ: http://www.ozzu.com/mswindows-forum/posting-event-log-with-batch-files-t76791.html

+0

cách xác định applicationObjectName, lvl, v.v. – ChanGan

7

Bạn có thể sử dụng JNA ghi vào Event Log trực tiếp mà không cần bất kỳ DLL bản địa. Xem các lớp Advapi32 và Advapi32Util cho các phương thức đăng nhập sự kiện khác nhau (các tàu từ JNA 3.2.8).

Nếu bạn đang sử dụng Log4j, hãy xem xét Log4jna thay vì NTEventLogAppender.

+2

Log4jna đã được chuyển đến [GITHUB] (https: //github.com/dblock/log4jna), trong trường hợp liên kết ở trên ngừng hoạt động. – Qben

Các vấn đề liên quan