2012-08-01 13 views
19

Tengo un answer sobre cómo usar SocketAppender (lo necesito para recopilar registros del sistema distribuido), pero soy nuevo en log4j y no tengo idea de cómo usar ese código de muestra.log4j: ¿Cómo usar SocketAppender?

Probablemente debería haber log4j-server.properties así:

log4j.appender.SERVER=org.apache.log4j.net.SocketAppender 
log4j.appender.SA.Port=4712 
log4j.appender.SA.RemoteHost=loghost 
log4j.appender.SA.ReconnectionDelay=10000 

Pero todavía no sé cómo iniciar el servidor (el uso de esta línea)

org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

Y cuál es el más importante: ¿Dónde \ Cómo puedo ver mis registros?

+0

Se llaman argumentos de línea de comandos. – Woot4Moo

Respuesta

41

Puede ejecutar el servidor utilizando

java -classpath log4j.jar org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties 

El SimpleSocketServer recibe eventos de registro enviado al número de puerto especificado por el mando a distancia SocketAppender, y los registra como si ellos fueron generados localmente, de acuerdo con la configuración que suministro en log4j-server.properties. Depende de usted configurar los apiladores de archivo de consola/archivo/rolling relevantes y adjuntarlos a los registradores relevantes de la misma forma que lo haría si estuviera haciendo el registro directamente en el proceso original en lugar de canalizar los eventos de registro a través de un socket de red. Es decir. si actualmente la creación de archivos de registro de locales con algo como:

log4j.rootLogger=DEBUG, file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=logfile.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n 

entonces tendría que cambiar para que el lado emisor log4j.properties simplemente dice

log4j.rootLogger=DEBUG, server 
log4j.appender.server=org.apache.log4j.net.SocketAppender 
log4j.appender.server.Port=4712 
log4j.appender.server.RemoteHost=loghost 
log4j.appender.server.ReconnectionDelay=10000 

y el lado del servidor log4j-server.properties contiene las definiciones que fueron previamente en el lado de envío:

log4j.rootLogger=DEBUG, file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=logfile.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n 

en particular, tenga en cuenta que no tiene sentido especificar una disposición en la SocketAppender en el lado de envío: lo que pasa por la red es el objeto de evento de registro completo, es el lado de recepción el responsable de hacer el diseño.

+0

Muchas gracias, funciona :) pero todavía tengo una pregunta. Ahora obtengo registros adicionales como '[2012-08-01 15: 20: 39,950] [principal] [Conectado al cliente en /127.0.0.1] [2012-08-01 15: 20: 39,950] [principal] [Inicio nuevo nodo de socket.] [2012-08-01 15: 20: 39,950] [main] [Esperando para aceptar un nuevo cliente.] '¿Qué debo hacer para evitar registrar esto? – alicjasalamon

+1

Esos parecen mensajes generados por el propio servidor de socket. Tendrás que refinar un poco tu configuración de registro. Dependiendo del nivel de estos mensajes adicionales, puede ser suficiente para configurar el registrador de raíz del servidor en ERROR en lugar de DEPURAR y luego agregar 'log4j.logger.com.example = DEPURAR' o lo que sea apropiado para los registradores que envía su lado iniciar sesión en. –

+0

¿qué tal un soporte para Log4J 2? – Donatello

0

Para iniciar el servidor de tipo simple continuación de comando en el símbolo del sistema y el servidor estará listo y en funcionamiento:

java -classpath C: org.apache Users.m2repositorylog4jlog4j1.2.17log4j-1.2.17.jar. log4j.net.SimpleSocketServer 4712 log4j-server.properties

No olvide especificar la ruta correcta de log4j.jar en su sistema.

Cuestiones relacionadas