我正在尝试从使用 LogChute 接口的速度 1.7 迁移。在我当前的实现中,我使用 log 方法来获取速度日志级别并比较我们自己的日志级别。请看下面的代码。
@Override
public void log(int level, String message) {
LogLevel projLevel = null;
switch ( level )
{
case LogChute.DEBUG_ID:
projLevel = LogLevel.DEBUG ;
break ;
case LogChute.INFO_ID:
projLevel = LogLevel.INFO ;
break ;
case LogChute.WARN_ID:
projLevel = LogLevel.WARNING ;
break ;
case LogChute.ERROR_ID:
projLevel = LogLevel.ERROR ;
break ;
default:
projLevel = LogLevel.ERROR ;
break ;
}
if (Log.canLog(projLevel, Const.VELOCITY_LOGGER))
{
Log.log(projLevel, Const.VELOCITY_LOGGER, getClass(), message,
null);
}
}
根据 apache velocity 2.0 文档,不推荐使用 LogChute,并且 apache velocity 正在使用 SLF4J 进行日志记录。因此,我尝试将 SLF4j-API 和 SLF4J 绑定用作 SLF4J Simple Logger 和 WebApp SLF4J Logger,但无法使用该类,因为我需要将速度日志级别与我们的自定义日志级别进行比较。所有这些都需要在运行时发生。
对于当前速度配置,我遵循以下配置,这与基于 1.7 速度配置作为 services.VelocityService.runtime.log.logsystem.class=our.package.xclassName 调用的自定义类相同。
这是文档的链接(https://velocity.apache.org/engine/1.7/developer-guide.html#configuring-logging)
这些都在 2.0 版本中被删除。
有人可以帮我解决这个问题。我正在尝试升级速度。