【FreeMarker】【程序开发】日志

FreeMarker整合了如下的日志包:

SLF4,Apache Commons Logging,Log4J,Avalon LogKit和java.util.logging(Java2平台1.4版本之后)。

默认情况下,FreeMarker会按如下顺序来查找日志包,而且会自动使用第一个发现的包:SLF4J,Apache Commons Logging,Log4J,Avalon,java.util.logging。


如果在freemarker.log.Logger类用合适的参数中调用静态的selectLoggerLibrary方法,而且在使用任何FreeMarker类之前记录信息,你可以明确地选择一个日志包,或者关闭日志功能。

import freemarker.log.Logger;
...
// 重要:这应该在使用其它FreeMarker类之前被执行!
Logger.selectLoggerLibrary(Logger.LIBRARY_SLF4J);
//或者 Logger.LIBRARY_COMMONS
...

所有由FreeMarker产生的日志信息会被记录到顶级记录器是名为freemarker的记录器中。

现在被使用的记录器是:

  • freemarker.beans —— 记录Beans包装器模块的日志信息。
  • freemarker.cache —— 记录模板加载和缓存相关的日志信息。
  • freemarker.runtime —— 记录在模板执行期间抛出的模板异常日志信息。
  • freemarker.runtime.attempt —— 记录在模板执行期间抛出的模板异常日志信息,但是是由attempt/recover指令捕捉的。开启DEBUG严重级别来查看异常。
  • freemarker.servlet —— 记录由FreeMarkerServlet类产生的日志信息。
  • freemarker.jsp —— 记录FreeMarker对JSP支持时打出的日志信息。

也可以调用freemarker.log.Logger类中的静态方法selectLoggerLibrary,传递一个字符串来用作是前缀,这是上述提到的日志包名称。如果你想给每个Web应用使用不同的日志包,这个基本操作会是很有用的(假设应用程序使用的是它本地的freemarker.jar包)。而且你也可以使用Logger.selectLoggerLibrary(Logger.LIBRARY_NONE)来关闭日志,不管哪种情况,selectLoggerLibrary必须在FreeMarker记录任何日志信息前面来调用,否则它就不会有任何效果。

你可能感兴趣的:(freemarker)