【发布时间】:2021-01-11 19:45:20
【问题描述】:
我正在尝试从使用 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 版本中被移除了。
有人可以帮我解决这个问题吗?我正在尝试升级速度。
【问题讨论】:
-
如果您能澄清您的问题(第 2 段和第 3 段)并清楚地表明问题所在,这将使我们更容易帮助确定问题并解决您的问题 :)跨度>
-
嘿@dantechguy,我的问题是apachevelocity的版本升级,以前我使用的是1.7版本的LogChute接口,我已经实现并编写了上面的代码,在这个的帮助下我能够获得速度级别的日志。因此,我正在尝试使用该文档提到的 2.0 速度版本来使用 SLF4J 和绑定。所以,我正在尝试使用 Simple Logger,但这个类是一个单例,无法扩展和利用这个对象。所以,我需要一个类似的代码来运行它。第三段是 1.7 版本中获取此类的配置
标签: java slf4j velocity apache-velocity slf4j-api