Jsp Tomcat 8启用调试日志记录以列出不需要的JAR

Jsp Tomcat 8启用调试日志记录以列出不需要的JAR,jsp,tomcat,logging,tomcat8,archlinux-arm,Jsp,Tomcat,Logging,Tomcat8,Archlinux Arm,在Arch Linux ARM上启动Tomcat 8时,我收到以下警告: 信息:至少有一个JAR已扫描TLD,但未包含TLD。 为此记录器启用调试日志记录,以获得 进行了扫描,但未发现TLD。跳过不需要的罐子 扫描期间可以缩短启动时间和JSP编译时间` 我已经修改了${catalina.home}/logging.properties,如下所述: 我将一些日志记录级别从INFO改为FINE,未加注释的“org.apache.jasper.compiler.tldlocationcache.lev

在Arch Linux ARM上启动Tomcat 8时,我收到以下警告:

信息:至少有一个JAR已扫描TLD,但未包含TLD。 为此记录器启用调试日志记录,以获得 进行了扫描,但未发现TLD。跳过不需要的罐子 扫描期间可以缩短启动时间和JSP编译时间`

我已经修改了${catalina.home}/logging.properties,如下所述:

我将一些日志记录级别从INFO改为FINE,未加注释的“org.apache.jasper.compiler.tldlocationcache.level=FINE”,并添加了“org.apache.jasper.servlet.TldScanner.level=FINE”。因此,文件的结尾现在看起来如下所示:

org.apache.catalina.core.ContainerBase.[catalina].[localhost].level= 好的 org.apache.catalina.core.ContainerBase.[catalina].[localhost].handlers =2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[catalina].[localhost]./manager].level =FINE org.apache.catalina.core.ContainerBase.[catalina].[localhost].[manager].handlers =3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase。[catalina].[localhost]./host manager].level =FINE org.apache.catalina.core.ContainerBase。[catalina].[localhost]./host manager].handlers =4host-manager.org.apache.juli.AsyncFileHandler

#例如,将org.apache.catalina.util.LifecycleBase记录器设置为log #扩展LifecycleBase更改状态的每个组件: #org.apache.catalina.util.LifecycleBase.level=FINE

#要查看TldLocationCache中的调试消息,请取消注释以下行:org.apache.jasper.compiler.TldLocationCache.level=FINE org.apache.jasper.servlet.TldScanner.level=FINE


但我仍然在启动时收到警告,而不是不需要的JAR路径。出什么问题了?

尝试通过以下方式调试所有内容:

  • 将其添加到位于
    {CATALINA-HOME}/conf
    中的
    logging.properties
    文件的末尾:

    #To see the most detailed level of logging for all classes, uncomment the following line:
    org.apache.catalina.level=FINEST
    
  • 重新启动Tomcat

  • 从终端运行以下命令以获取需要跳过的JAR列表(由@joseph lust on post提供):

  • 在用户主目录中打开
    skips.txt

  • 将此列表添加到下一行之后的
    {CATALINA-HOME}/conf/CATALINA.properties

    org.apache.catalina.startup.TldConfig.jarsToSkip=
    
  • 确保在完成此操作时删除/注释掉此项,以防止日志文件变得过大

  • 我仍然不知道为什么会发生这种情况,因为对大多数人来说,取消注释
    tldLocationCache
    行似乎很有效。

    尝试通过以下方式调试所有内容:

  • 将其添加到位于
    {CATALINA-HOME}/conf
    中的
    logging.properties
    文件的末尾:

    #To see the most detailed level of logging for all classes, uncomment the following line:
    org.apache.catalina.level=FINEST
    
  • 重新启动Tomcat

  • 从终端运行以下命令以获取需要跳过的JAR列表(由@joseph lust on post提供):

  • 在用户主目录中打开
    skips.txt

  • 将此列表添加到下一行之后的
    {CATALINA-HOME}/conf/CATALINA.properties

    org.apache.catalina.startup.TldConfig.jarsToSkip=
    
  • 确保在完成此操作时删除/注释掉此项,以防止日志文件变得过大

  • 我仍然不知道为什么会发生这种情况,因为对大多数人来说,取消注释
    tldLocationCache
    行似乎很有效。

    更简单的方法是,在上述文章的第1步中,不要对所有内容启用调试,而是限制在org.apache.jasper:

    使用以下命令:

    org.apache.jasper.level = FINEST
    
    与此相反:

    org.apache.catalina.level=FINEST
    

    更简单的方法是,在上述文章的步骤1中,不要启用所有调试,而是限制为org.apache.jasper:

    使用以下命令:

    org.apache.jasper.level = FINEST
    
    与此相反:

    org.apache.catalina.level=FINEST
    

    我编写了一个脚本来查找所有不包含TLD的JAR:

    #!/bin/sh
    TOMCAT_HOME=/opt/tomcat
    for i in `find $TOMCAT_HOME -follow -name "*jar"`
    do
        jar tvf $i | grep -i tld > /dev/null
        if [ $? -ne 0 ]; then
            echo "$(basename $i),\\"
        fi
    done
    
    编辑TOMCAT_主页以匹配您的安装,脚本将在表单上生成一个列表:

    jar1.jar,\
    jar2.jar,\
    ...
    
    可粘贴到catalina.properties中的:

    org.apache.catalina.startup.TldConfig.jarsToSkip=
    

    我编写了一个脚本来查找所有不包含TLD的JAR:

    #!/bin/sh
    TOMCAT_HOME=/opt/tomcat
    for i in `find $TOMCAT_HOME -follow -name "*jar"`
    do
        jar tvf $i | grep -i tld > /dev/null
        if [ $? -ne 0 ]; then
            echo "$(basename $i),\\"
        fi
    done
    
    编辑TOMCAT_主页以匹配您的安装,脚本将在表单上生成一个列表:

    jar1.jar,\
    jar2.jar,\
    ...
    
    可粘贴到catalina.properties中的:

    org.apache.catalina.startup.TldConfig.jarsToSkip=
    

    原始问题中提到的
    org.apache.jasper.servlet.TldScanner.level=FINE
    行应该足以获得不需要的JAR路径。可能是其他原因阻止了日志记录的工作

    如果您正在使用Eclipse,并且正在服务器选项卡上作为服务器运行Tomcat,那么可能需要一些额外的配置来正确读取
    logging.properties

  • 如果服务器选项卡尚未打开,请打开它(窗口>显示视图>其他…>服务器>服务器)。如果Tomcat服务器正在运行,请停止它
  • 在Servers选项卡中,双击应该调整其日志记录设置的Tomcat服务器。这将打开服务器的Overview选项卡
  • 在“一般信息”部分下,单击“打开启动配置”。这将弹出编辑配置弹出窗口
  • 切换到参数选项卡。在VM arguments部分中,添加以下参数,将第一个参数调整到
    logging.properties
    文件的路径:
    • -Djava.util.logging.config.file=“C:\REPLACE\WITH\PATH\TO\TOMCAT\conf\logging.properties”
    • -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
  • 启动Tomcat并在控制台中查找以下行:

  • 感谢您的回答,这帮助了我。

    原始问题中提到的
    org.apache.jasper.servlet.TldScanner.level=FINE
    行应该足以获得不需要的jar路径。可能是其他原因阻止了日志记录的工作

    如果您正在使用Eclipse,并且正在服务器选项卡上作为服务器运行Tomcat,那么可能需要一些额外的配置来正确读取
    logging.prope