Java JSP页面log4j的行号打印
我正在使用它来登录我的Java项目。我的转换模式如下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
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框架,它在连接代码后重新编译代码)