2008-10-02 15 views

Respuesta

23

Log4J es una utilidad de registro basada en Java. La clase NTEventLogAppender se puede usar para "anexar al sistema de registro de eventos de NT". Consulte la documentación aquí:

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

Editar: "que proporciona mejoras significativas con respecto a su predecesor" Hay una versión más reciente, Log4j 2

+0

Log4J es una buena opción porque su código no se acopla al objetivo de registro subyacente y se configura fácilmente a través de XML. –

+1

El gran problema con NTEventLogAppender es que requiere que una DLL nativa se coloque en todo tipo de lugares en los que no lo desea. –

4

También puede usar el comando eventcreate en Windows XP Pro y superior.

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

Runtime.getRuntime().exec(command); 

Para XP Home e inferior, se puede crear una aplicación que escribe EBV usando el método wscript.shell.eventcreate. Sin embargo, sacrificas la capacidad de especificar la fuente.

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

+0

cómo definir applicationObjectName, lvl, etc. – ChanGan

7

Puede utilizar JNA escribir en el registro de eventos directamente sin la necesidad de cualquier DLL nativos. Consulte las clases Advapi32 y Advapi32Util para varios métodos de registro de eventos (se envía desde JNA 3.2.8).

Si está utilizando Log4j, considere Log4jna en lugar de NTEventLogAppender.

+2

Log4jna se ha movido a [GITHUB] (https: //github.com/dblock/log4jna), en caso de que el enlace de arriba deje de funcionar. – Qben

Cuestiones relacionadas