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.