Tengo un respuesta acerca de cómo utilizar SocketAppender (la necesito para recopilar los registros de sistema distribuido), pero soy nuevo en log4j y no tengo idea de cómo utilizar el código de ejemplo.

Probablemente debería haber log4j-servidor.propiedades como que:

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 lo que es más importante:
Donde\¿Cómo puedo ver los registros de mi?

  • Esos son llamados argumentos de línea de comandos.

2 Comentarios

  1. 45

    Puede ejecutar el servidor con

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

    La SimpleSocketServer recibe el registro de los eventos enviados para el número de puerto especificado por el control remoto SocketAppender, y los registros de los como si fueran generados localmente, de acuerdo a la configuración de la oferta en log4j-server.properties. Es hasta usted para configurar la pertinente consola/archivo/archivo rodante appenders y adjuntar a la correspondiente a los registradores como lo haría si usted fuera a hacer el registro directamente en el proceso original en lugar de la tubería el registro de eventos a través de una toma de red. I. e. si usted está actualmente en la creación de locales de los archivos de registro 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

    a continuación, habría que cambiar esto para que el lado de envío 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 en 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 hay ningún punto de la especificación de un diseño en el SocketAppender en el lado de envío – lo que va a través de la red es el conjunto de evento de registro de objeto, es el lado de recepción, que es el responsable de hacer el diseño.

    • Muchas gracias, funciona 🙂 pero todavía tengo una pregunta. Ahora puedo obtener registros como [2012-08-01 15:20:39,950] [main] [Connected to client at /127.0.0.1] [2012-08-01 15:20:39,950] [main] [Starting new socket node.] [2012-08-01 15:20:39,950] [main] [Waiting to accept a new client.] ¿Qué debo hacer para evitar el registro de esto?
    • Esos parecen los mensajes generados por el servidor de socket sí mismo. Tendrás que afinar tu configuración de registro de un bit. Dependiendo del nivel de estos mensajes puede ser suficiente para establecer su lado del servidor raíz registrador de ERROR en lugar de DEPURACIÓN y, a continuación, agregue log4j.logger.com.example=DEBUG o lo que sea apropiado para los registradores de su lado de envío es el registro.
    • ¿qué pasa con un soporte para Log4J 2 ?
    • Puede que el servidor de la identificación del cliente, por ejemplo, el cliente diferente para diferentes archivos o agregar la ip del cliente para cada evento de registro?
    • no se como estándar, pero SimpleSocketServer es muy simple código, así que no sería difícil modificar para agregar la dirección IP del cliente a la MDC antes de iniciar el evento a nivel local, entonces usted podría hacer referencia a que el MDC clave en su adicionador patrón
  2. 0

    Para iniciar el servidor de tipo simple siguiente comando en el símbolo del sistema y el servidor estará listo y funcionando:

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

    Por favor, no te olvides de especificar la ruta de acceso correcta log4j.jar en su sistema.

Dejar respuesta

Please enter your comment!
Please enter your name here