去除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日志方式(通过配置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值