Java JSP页面log4j的行号打印

Java JSP页面log4j的行号打印,java,jsp,log4j,Java,Jsp,Log4j,我正在使用它来登录我的Java项目。我的转换模式如下 ConversionPattern=%d{MMMMM dd,yyyy HH:mm:ss} %-5p [ %C{1} - %M() - %L ] - %m%n 现在,对于所有Java类,它将输出打印为: February 03,2012 15:18:41 DEBUG [ RadiusClientConfigBean - initialize() - 63 ] - RadiusClientsConfigBean.initialize() Cal

我正在使用它来登录我的Java项目。我的转换模式如下

ConversionPattern=%d{MMMMM dd,yyyy HH:mm:ss} %-5p [ %C{1} - %M() - %L ] - %m%n
现在,对于所有Java类,它将输出打印为:

February 03,2012 15:18:41 DEBUG [ RadiusClientConfigBean - initialize() - 63 ] - RadiusClientsConfigBean.initialize() Called
但对于JSP页面,它打印为:

February 03,2012 15:19:00 DEBUG [ managevoippolicy_jsp - _jspService() - 443 ] - VoIP Policies = 4

这不是该页的实际行号。如何打印JSP页面的行号。

您的JSP被重新编译为servlet类,因此您永远无法将它们与原始页面匹配。

从JSP确定原始行号的一种方法是JSP编译器创建一个您可以使用的源映射(SMAP)。(我不建议将其用于生产)

作为起点,本次讨论可能会有所帮助:


那么,如果我想将该JSP页面的行号打印到日志文件中,该怎么办?正如前面所说的:您不能这样做。这就是无法控制的重新编译页面的缺点。不建议将逻辑放在jsp文件中,而是使用MVC。在控制器中,您可以控制行号。(除非您使用像aspectj这样的AOP框架,它在连接代码后重新编译代码)