mkyong logger example java log4j appender

java - logger - log4j rollingfileappender example



log4j: ¿Cómo usar SocketAppender? (2)

Para iniciar el servidor, escriba el comando siguiente abajo en el símbolo del sistema y el servidor estará en funcionamiento:

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

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

Tengo una 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.

Probablemente debería tener 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 (cómo usar esta línea)

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

¿Y qué es lo más importante? ¿Dónde / ¿Cómo puedo ver mis registros?


Puede ejecutar el servidor usando

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

El SimpleSocketServer recibe los eventos de registro enviados al número de puerto especificado por el SocketAppender remoto y los registra como si se hubieran generado localmente , de acuerdo con la configuración que proporcione en log4j-server.properties . Depende de usted configurar los agregadores relevantes de la consola / archivo / archivo y adjuntarlos a los registradores relevantes de la misma manera que lo haría si estuviera realizando 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 está creando archivos de registro 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 lo cambiaría para que el lado de envío log4j.properties simplemente diga

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 servidor log4j-server.properties contiene las definiciones que estaban 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 un diseño en el 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.