En mi organización, hemos reunido algunas reglas / líneas de control sobre el registro que me gustaría saber si puede agregar o comentar.
Usamos Java, pero puede comentar en general sobre el inicio de sesión: reglas y consejos
Use el nivel de registro correcto
- ERROR: Algo ha salido muy mal y es necesario solucionarlo de inmediato.
- ADVERTENCIA: El proceso puede continuar sin reparaciones. La aplicación debe tolerar este nivel, pero la advertencia siempre debe investigarse.
- INFORMACIÓN: información de que un proceso importante ha finalizado
- DEPURAR. Solo se usa durante el desarrollo
Asegúrese de saber lo que está registrando.
Evite que el registro influya en el comportamiento de la aplicación.
La función del registro debe ser escribir mensajes en el registro.
- Los mensajes de registro deben ser descriptivos, claros, cortos y concisos.
No se utiliza mucho un mensaje sin sentido al solucionar problemas.
- Ponga las propiedades correctas en log4j
Ponga que el método y la clase correctos se escriben automáticamente.
Ejemplo:
Datedfile -web
log4j.rootLogger=ERROR, DATEDFILE
log4j.logger.org.springframework=INFO
log4j.logger.waffle=ERROR
log4j.logger.se.prv=INFO
log4j.logger.se.prv.common.mvc=INFO
log4j.logger.se.prv.omklassning=DEBUG
log4j.appender.DATEDFILE=biz.minaret.log4j.DatedFileAppender
log4j.appender.DATEDFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATEDFILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%C{1}.%M] - %m%n
log4j.appender.DATEDFILE.Prefix=omklassning.
log4j.appender.DATEDFILE.Suffix=.log
log4j.appender.DATEDFILE.Directory=//localhost/WebSphereLog/omklassning/
- Valor de registro.
Por favor, registre los valores de la aplicación.
- Prefijo de registro
Indique desde qué parte de la aplicación se escribe el registro, preferiblemente con algo para el prefijo acordado del proyecto, por ejemplo PANDORA_DB
- La cantidad de texto.
Tenga cuidado para que no haya demasiado texto de registro. Puede influir en el rendimiento de la aplicación.
- Formato de inicio de sesión:
-Hay varias variantes y métodos para usar con log4j, pero nos gustaría un uso uniforme del siguiente formato, cuando iniciamos sesión con excepciones:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
En el ejemplo anterior, se supone que hemos establecido las propiedades de log4j para que escriba automáticamente la clase y el método.
Utilice siempre el registrador y no lo siguiente:
System.out.println(), System.err.println(), e.printStackTrace()
Si la aplicación web utiliza nuestro marco, puede obtener información de error muy detallada de EJB, si usa try-catch en el controlador y registra de acuerdo con el modelo anterior:
En nuestro proyecto, usamos este patrón de conversión con el cual los nombres de método y clase se escriben automáticamente. Aquí usamos dos patrones diferentes para la consola y para el archivo de archivos con fecha:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
En los ejemplos anteriores, el método y la clase se escribirán. En el número de fila de la consola también se escribirá nuestro.
toString()
Por favor tenga un toString()
para cada objeto. EX:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" DwfInformation [ ");
sb.append("cc: ").append(cc);
sb.append("pn: ").append(pn);
sb.append("kc: ").append(kc);
sb.append("numberOfPages: ").append(numberOfPages);
sb.append("publicationDate: ").append(publicationDate);
sb.append("version: ").append(version);
sb.append(" ]");
return sb.toString();
}
en lugar del método especial que hace estas salidas
public void printAll()
{
logger.info("inbet: " + getInbetInput());
logger.info("betdat: " + betdat);
logger.info("betid: " + betid);
logger.info("send: " + send);
logger.info("appr: " + appr);
logger.info("rereg: " + rereg);
logger.info("NY: " + ny);
logger.info("CNT: " + cnt);
}
Entonces, ¿hay algo que pueda agregar, comentar o encontrar cuestionable con estas formas de usar el registro? Siéntase libre de responder o comentar incluso si no está relacionado con Java, Java y log4j es solo una implementación de cómo se razona esto.