En el artículo anterior, le presenté el tutorial detallado sobre Java Log4J. Para más detalles, consulte a continuación.
Primero, le proporcionamos log4j.jar Descargar: http://logging.apache.org/log4j/1.2/download.html
1. Use log4j para el proyecto web Java
1. Agregue el archivo web.xml
<!-Configurar log4j-> <context-param> <amamname> WebApprootkey </param-name> <amam-value> com.hsinghsu.testssh.webapp.root </param-value> </tex t -param> <context-param> <amamname> log4jconfiglocation </param-name> <param-value> /web-inf/classes/log4j.properties </param-value> </context-par> <context -Param> <Param-name> LOG4JRefreshInterval </param-Name> <Param-Value> 600000 </param-value> </context-param>
2. Agregue el archivo Log4j.Properties
log4j.rootcategory = info, stDout, r log4j.appender.stdout = org.apache.log4j.consoleppender log4j.appender.stdout.layout = org.apache.log4j.p atternLayout log4j.appender.stdout.layout.conversionPattern = [QC ]%P [%T]%C.%M (%L) | avatar .log ## ruta del archivo de registros de Linux #log4j.appender.r.file = $ {com.hsinghsu.testssh.webapp.root} /log/testlog.log ## Windows registra ruta de archivo log4j.appender .r.file = = D: //eclipsespace//testssh//webcontent//webinf//testlog.log log4j.appender.r.Rayout = org.apache.log4j.patternLayout #log4j.appender.r.Rlay.conversionPattern =%d - [ts] %p %t %c - %m %n #log4j.logger.com.neusoft = debug #log4j.logger.com.opensymphony.oscache = error log4j.logger.net.sf.navigator = info #log4 J.Logger .org.apache.commons = Error #log4j.logger.org.apache.struts = warn #log4j.logger.org.displaytag = error #log4j.logger.org.springframework = inf o #log4j.logger. com.ibatis. org.hibernate = debug log4j.logger.org.hibernate = info #log4j.logger.org.logicalcobwebs = warn
3. Use log4j
Por ejemplo, use log4j en UserServiceImpl.java.
paquete com.hsinghsu.testssh.service.impl. Dao .userdao; Final Static logger = logger.getLogger (UserServiceImpl.Class); - UserServiceImpl Nombre del método de inicio de sesión: "+nombre+" contraseña: "+contraseña); usuario user = userdao.getuserByName (name); if (user! = Null) {if (passwor d.equals (user.getpwd ()))) {return true;
2. Explicación detallada de los parámetros de Log4J.Properties
Los niveles de registro se dividen en depuración (información de depuración), información (información general), advertencia (información de advertencia), error (información de error) y fatal (información de error fatal).
LOG4J admite dos formatos de archivo de configuración, uno es un archivo de formato XML y el otro es un archivo de propiedad Java log4j.properties.
1. Configure el registrador raíz
Logger es responsable de manejar la mayoría de las operaciones de registro, y su sintaxis es:
log4j.rootlogger = [nivel], appendername1, appendername2, ...
Nivel: ¿Está la prioridad de registro, dividida en OFF, FATAL, ERROR, ADVERTA, INFO, DEBUGA, todo o el nivel que define.
Appendername: es el nombre del destino de salida de información de registro especificado.
Por ejemplo: log4j.rootlogger = info, a1, b2, c3
En las versiones Log4J tempranas, org.apache.Category implementó la función de un registrador, y luego extendió la clase de categoría usando Logger, por lo que también se puede usar log4j.rootcategory.
Por ejemplo: log4j.rootcategory = info, a1, a2
2. Configure el appensador de destino para la salida de información de registro
Appender es responsable de controlar la salida de las operaciones de registro, y su sintaxis es:
log4j.appender.appendername = totalmente.qualified.name.of.appender.class
Entre ellos, "totalmente.calified.name.of.appender.class" tiene los siguientes tipos:
I.org.apache.log4j.ConsolePpender (consola)
Hay varias opciones:
Umbral = Warn: Especifica el nivel más bajo de salida de los mensajes de registro.
Inmediatoflush = true: el valor predeterminado es verdadero, lo que significa que todos los mensajes se emitirán de inmediato.
Target = System.err: por defecto, es: System.out, especifique la consola de salida
ii.org.apache.log4j.fileepeppender (archivo)
Hay varias opciones:
Umbral = Warn: Especifica el nivel más bajo de salida de los mensajes de registro.
Inmediatoflush = true: el valor predeterminado es verdadero, lo que significa que todos los mensajes se emitirán de inmediato.
File = mylog.txt: especifica que el mensaje se emite en el archivo mylog.txt.
Append = false: el valor predeterminado es verdadero, lo que significa agregar el mensaje al archivo especificado.
iii.org.apache.log4j.DailyRollingFilePeppender (genera un archivo de registro todos los días)
Hay varias opciones:
Umbral = Warn: Especifica el nivel más bajo de salida de los mensajes de registro.
Inmediatoflush = true: el valor predeterminado es verdadero, lo que significa que todos los mensajes se emitirán de inmediato.
Archivo = A.Log: Especifica que el mensaje se emite al archivo A.Log, que se inicia desde la ruta raíz del servidor web de forma predeterminada.
Append = false: el valor predeterminado es verdadero, lo que significa agregar el mensaje al archivo especificado.
DatePattern = '.' Aaa yyy-ww: desplácese el archivo una vez por semana, es decir, genere un nuevo archivo cada semana. Por supuesto, también puede especificar mensualmente, semana, día, hora y minuto. Es decir, el formato correspondiente es el siguiente:
'.'yyyyy-mm: mensualmente
'.'yyyyy-ww: semanalmente
'.'yyyyy-mm-dd: todos los días
'.'yyyyy-mm-dd-a: dos veces al día
'.'yyyyy-mm-dd-hh: por hora
'.'yyyyy-mm-dd-hh-mm: por minuto
iv.org.apache.log4j.RollingFileAppender (se genera un nuevo archivo cuando el tamaño del archivo alcanza el tamaño especificado. Puede configurar el tamaño del archivo por log4j.appender.appendername.maxfilesize = 100kb)
Hay varias opciones:
Umbral = Warn: Especifica el nivel más bajo de salida de los mensajes de registro.
Inmediatoflush = true: el valor predeterminado es verdadero, lo que significa que todos los mensajes se emitirán de inmediato.
Archivo = A.Log: Especifica que el mensaje se emite al archivo A.Log, que se inicia desde la ruta raíz del servidor web de forma predeterminada.
Append = false: el valor predeterminado es verdadero, lo que significa agregar el mensaje al archivo especificado.
MaxFilesize = 100kb: el sufijo puede ser KB, MB o GB.
MaxBackUpIndex = 2: Especifica el número máximo de archivos de desplazamiento que se pueden generar.
v.org.apache.log4j.writerAppender (envíe información de registro en formato de transmisión a cualquier lugar especificado)
Por ejemplo:
log4j.appender.r = org.apache.log4j.dailyrollingfilePeppender
log4j.appender.r.file = d: //eclipsspace//testssh//webcontent//webinf//testlog.log
3. Configure el formato (diseño) de la información de registro
El diseño es responsable de formatear la salida de Appender, y su sintaxis es:
log4j.appender.appendername.layout = totalmente.qualified.name.of.layout.class
Entre ellos, "totalmente.qualified.name.of.layout.class" tiene los siguientes tipos:
i.org.apache.log4j.htmllayout (diseño en forma de tabla HTML)
Hay varias opciones:
UbicationInfo = true: el valor predeterminado es falso, emite el nombre del archivo Java y el número de línea
Title = mi archivo de aplicación: el valor predeterminado es los mensajes de registro log4j.
ii.org.apache.log4j.PatternLayout (el modo de diseño se puede especificar de manera flexible)
Hay varias opciones:
ConversionPattern =%M%N: Especifica cómo formatear el mensaje especificado.
-X Número: Alineación de izquierda cuando se emite información X;
%P: la prioridad de la información del registro de salida, es decir, depuración, información, advertencia, error, fatal,
%D: La fecha o la hora del punto de registro se produce. Similar: 18 de octubre de 2002 Día 22:10:28, 921
%R: El número de milisegundos a la salida del inicio de la aplicación a la salida de esta información de registro
%C: La categoría a la que pertenece la información del registro de salida suele ser el nombre completo de la clase
%t: salida El nombre del subproceso que genera el evento de registro
%L: El evento de registro de salida ocurre en la ubicación de la ocurrencia de%C.%m (%F:%L), incluido el nombre de la categoría, el hilo de ocurrencia y el número de líneas en el código. Ejemplo: TestLog4.Main (TestLog4.Java:10)
%X: La salida de NDC (entorno de diagnóstico neshed) asociado con el hilo actual, especialmente en aplicaciones como Servlets Java con múltiples clientes y subprocesos múltiples.
%%: emisión de un carácter "%"
%F: el nombre del archivo donde se generó el mensaje de registro de salida
%L: número de línea en el código de salida
%m: el mensaje especificado en el código de salida y la información de registro específica generada
% n: salida Una ruptura de línea de retorno de carro, la plataforma de Windows es "/R/N", la plataforma Unix es "/N" para salir de la información de la información de la línea se pueden agregar entre % y caracteres de modo para controlar su ancho mínimo y su ancho máximo. Ancho y alineación de texto. como:
%20C: Especifica el nombre de la categoría de salida, el ancho mínimo es 20. Si el nombre de la categoría es inferior a 20, está alineado correctamente de forma predeterminada.
%-20C: Especifica el nombre de la categoría de salida.
%.30c: especifique el nombre de la categoría de salida. no sean espacios.
%20.30c: Si el nombre de la categoría es inferior a 20, complete el espacio y alinee a la derecha.
Por ejemplo: %-4r %-5p %d {yyyyy-mm-dd hh: mm: sss} %c %m %n
[Prueba]%p [%t]%C.%m (%l) |
iii.org.apache.log4j.simplelayout (contiene el nivel y la cadena de información de la información del registro)
iv.org.apache.log4j.ttcclayout (incluido el tiempo, el hilo, la categoría, etc. de la generación de registros)
4. Otros
log4j.logger.com.
Especifique que todas las clases en el paquete Com.NeUSoft sean depurados.
log4j.logger.com.opensymphony.oscache = error
log4j.logger.net.sf.navigator = error
Estas dos oraciones establecen el nivel de los errores que ocurren en estos dos paquetes al error.
log4j.logger.org.apache.commons = error
log4j.logger.org.apache.struts = Warn
Estas dos oraciones son el paquete de puntales.
log4j.logger.org.displaytag = error
Esta oración es el paquete DisplayTag. (Utilizado en la página de la lista de preguntas de QC)
log4j.logger.org.springframework = debug
Esta oración es un paquete de primavera.
log4j.logger.org.hibernate.ps.preparedStatementCache = Warn
log4j.logger.org.hibernate = debug
Estas dos oraciones son el paquete de Hibernate.
3. Escribir registros a varios archivos.
Configuración LOG4J:
log4j.rootcategory = info, stdout
log4j.appender.stdout = org.apache.log4j.consoleppender
log4j.appender.stdout.layout = org.apache.log4j.patternlayout
log4j.appender.stdout.layout.conversionpattern =%d {yyyy-mm-dd hh/: mm/: ss, ss} [colorclouds]%p [%t]%c.%m (%l) | norte
log4j.logger.net.sf.navigator = info
log4j.logger.org.springframework = info
log4j.logger.runlogger = info, r
log4j.appender.r = org.apache.log4j.rollingfilePepsender
log4j.appender.r.file = g: //log//runlog.log
log4j.appender.r.maxfilesize = 51200kb
#log4j.appender.r.file = $ {com.huawei.icity.webapp.root} /log/icity.log
log4j.appender.r.Layout = org.apache.log4j.patternlayout
log4j.appender.r.Rayout.ConversionPattern =%d {yyyy-mm-dd hh/: mm/: ss, ss} [ColorClouds run]%P [%t]%C.%m (%l) | %norte
#log4j.logger.businesslogger = info, b
#log4j.appender.b = org.apache.log4j.rollingfilePeppender
#log4j.appender.b.file = g: //log//businesslog.log
#log4j.appender.b.maxfilesize = 51200kb
#log4j.appender.b.layout = org.apache.log4j.patternlayout
#log4j.appender.b.layout.conversionPattern =%d {yyyy-mm-dd hh/: mm/: ss, ss} [negocios de colorclouds]%p [%t]%c.%m (%l) | Minnesota
log4j.logger.interfacelogger = info, i
log4j.appender.i = org.apache.log4j.rollingfilePepsender
log4j.appender.i.file = g: //log//interfacelog.log
log4j.appender.i.maxfilesize = 51200kb
log4j.appender.i.layout = org.apache.log4j.patternlayout
log4j.appender.i.layout.conversionPattern =%d {yyyy-mm-dd hh/: mm/: ss, ss} [interfaz ColorClouds]%p [%t]%C.%m (%l) | %norte
Java Llamada:
importar org.apache.commons.logging.log; getLog ("runlogger"); // ejecutar log private static log interfacelog = logFactory.getLog ("interfacelogger"); // interface log public string string ejecutute () lanza excepto ion {interfacelog.info ("=== >> "); runlog.info (" solicitud 02 "); return super.execute ();}}
La siguiente es una forma de configurar log4j en un proyecto web
1. Cambie dinámicamente el nivel de registro y la política, y no hay necesidad de reiniciar la aplicación web, como se indica en "Java empresarial efectiva".
2. Establezca el archivo de registro en/web-Inf/logs/sin escribir una ruta absoluta.
3. Puede colocar log4j.properties y otras propiedades junto con / web-inf / en lugar de patas de clase.
Agregar en web.xml
<
<cuette-param> <amamname> WebApprootKey </amamname> <amam-value> xxx.root </amam-value> </text-param> <context-param> <amamname> log 4jconfiglocation < /param-name> <amam-value> web-inf/log4j.properties </param-value> </context-param> <context-param> <amamname> log4jrefreshinterval </param-name> <param-valual > 60000 </param-value> </context-param> <Oyerer> <searner-class> org.springframework.web.util.log4jconfiglistener </ oyinger-class> </oyente>
En la configuración anterior, LOG4JConfigListener leerá el archivo de configuración en Web-INF/LOG4J.Propeties;
Abra un hilo de vigilancia para escanear el archivo de configuración cambia cada 60 segundos;
Y presione la ruta del directorio web en una variable del sistema llamada WebApp.root.
Luego, la ubicación del archivo de registro se puede definir en log4j.properties
log4j.appender.logfile.file = $ {webapp.root} /webinf/logs/myfuse.log
Si hay múltiples aplicaciones web y temen que las variables WebApp.Root se repitan, puede definir el Apacilista web en el contexto-param.
Lo anterior son las habilidades de este artículo para analizar la configuración de Java Web4J y configurar log4j en proyectos web.