去除FreeMarker可恶的Stack Trace

Freemarker的确是不错又简洁的模板语言.

不过用在servlet中会产生非常非常多的错误日志,多得让人发晕.

 

对于ftl文件,错误是很明显的,只需要一点点的提示,说明错误在哪一行就行了,不需要把stack trace打来出.

 

如何去除呢?

 

首先,你必须重载FreemarkerServlet , 在它的init()函数中引入一个新的TemplateExceptionHandler,

 

		this.getConfiguration().setTemplateExceptionHandler(new TemplateExceptionHandler() {
			public void handleTemplateException(TemplateException te, Environment env, Writer out) throws TemplateException {
				System.out.println("### [FTL]: " +te.getMessage());
			}
		});

 

 

然后,在log4j.properties中加入:

log4j.logger.freemarker=FATAL

 

ok,大功告成.

 

我们做了什么呢?

 

1. 重载了Freemarker默认的TemplateExceptionHandler,在处理日志时输出错误.

2. 禁用Freemarker原始的log4j日志方式(通过配置)

你可能感兴趣的:(去除FreeMarker可恶的Stack Trace)