在Java中创建用于记录日志或异常的消息的最佳做法

问题描述 投票:0回答:1

我在Java 6中找到了此代码。

String mensajeExcluido = ArqSpringContext.getPropiedad("MENSAJE.EXCLUIDO");
LOG.warn("ERROR: Servicio: " + mensajeExcluido + ":" + someDTO.getProperty() +
        ",\tsomeValue:" + someDTO.getValue() + "'.");
throw new Exception(mensajeExcluido);

此代码

String mensajeExcluido = ArqSpringContext.getPropiedad("REGLA.MENSAJE");
String mensajeWarn = "ALERTA: Otro Servicio: " + mensajeExcluido + ":" +
        someDTO.getProperty() + ",\tsomeValue:" + someDTO.getValue() + "'.";
LOG.warn(mensajeWarn);

boolean exclusionVisible = Boolean.valueOf(ArqSpringContext.getPropiedad("EXCLUSION.VISIBLE"));
if (exclusionVisible) {
    mensajeWarn = "<br></br>" + mensajeWarn;
} else {
    mensajeWarn = "";
}
throw new Exception(mensajeExcluido + mensajeWarn);

此代码

LOG.warn("No se pudo validar Client Service. Code: " +
        someDTO.getStatusCode() + ".");
return "No se pudo validar Client Service. Code: " +
        someDTO.getStatusCode() + ".";

为了遵循最佳做法...

哪些建议适用?

他们将对代码进行哪些更改?

如何处理文本?

java exception logging properties message
1个回答
0
投票

首先,在检查是否应打印日志语句之前尝试避免消息创建处理(即:在检查日志级别之前不要连接消息字符串。

if (LOG.isDebugEnabled())
    LOG.debug("This is a message with " + variable + " inside");

// Better than
final String message = "This is a message with " + variable + " inside";
if (LOG.isDebugEnabled())
    LOG.debug(message);

大多数Java日志记录框架允许检查以根据给定的设置提前知道是否要打印日志语句。

© www.soinside.com 2019 - 2024. All rights reserved.