【问题标题】:Apache Velocity standard logging configuration creates far too much log outputApache Velocity 标准日志配置创建了太多的日志输出
【发布时间】:2015-01-09 06:44:39
【问题描述】:

我有一个使用velocity模板化的小型网页项目

我的 web.xml 配置很简单

<servlet>
  <servlet-name>velocity</servlet-name>
  <servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>
</servlet>
<init-param>
  <param-name>org.apache.velocity.properties</param-name>
  <param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
<servlet-mapping>
  <servlet-name>velocity</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

我的日志充满了来自 org.apache.catalina.core.ApplicationContext 的这种日志记录

Nov 06, 2014 4:25:24 PM org.apache.catalina.core.ApplicationContext log
INFORMATION:  Velocity   [info] WebappResourceLoader: added template path - '/WEB-INF/velocity/'
Nov 06, 2014 4:25:24 PM org.apache.catalina.core.ApplicationContext log
INFORMATION:  Velocity  [trace] WebappResourceLoader: initialization complete.
Nov 06, 2014 4:25:24 PM org.apache.catalina.core.ApplicationContext log
INFORMATION:  Velocity  [debug] ResourceLoader instantiated: org.apache.velocity.runtime.resource.loader.StringResourceLoader

日志入口总是如下所示: “日期” PM org.apache.catalina.core.ApplicationContext 日志 信息:速度“一些非常无用的信息”。

我有标准的 tomcat 配置,并希望避免在 tomcat 级别上进行更改。仍然不知道如何处理每天 60 MB 无用的日志文件。

有没有办法减少日志量?我知道有关记录 velocity logging 的速度文档,但我发现它有点令人困惑。

任何帮助将不胜感激......

【问题讨论】:

    标签: java apache tomcat logging velocity


    【解决方案1】:

    额外的行 is 来自 tomcat,因此您可以在任何 webapp 中看到它,并且您将无法在不触摸 tomcat 配置的情况下将其删除。这并不简单,但也没那么难。参见例如 how to set up log4j logging(此页面适用于 tomcat 7,但如果不是您的 tomcat 版本,请进行调整)。简而言之:

    1. log4j download page下载log4j 1.2+ jar并放入tomcat/lib
    2. tomcat 7 download page的附加部分下载tomcat-juli-adapters.jar和log4j的tomcat-juli.jartomcat-juli.jar 进入 tomcat/bintomcat-juli-adapters.jar 进入 tomcat/lib
    3. 您现在必须设置一个tomcat/lib/log4j.properties 文件。周围有几个例子,这里有一个将所有 web 应用程序记录在每日轮换的 tomcat/logs/tomcat.log 文件中:

      log4j.rootCategory=信息,旋转
      log4j.appender.rotating=org.apache.log4j.DailyRollingFileAppender log4j.appender.rotating.File=${catalina.home}/logs/tomcat.log log4j.appender.rotating.DatePattern='.'yyyy-MM-dd log4j.appender.rotating.layout=org.apache.log4j.PatternLayout log4j.appender.rotating.layout.ConversionPattern=%d - %m%n

    一旦你摆脱了这个额外的行,你就可以设置 Velocity 日志级别。这是/WEB-INF/velocity.properties的相关部分:

    runtime.log.logsystem.class = org.apache.velocity.runtime.log.ServletLogChute
    runtime.log.logsystem.servlet.level = info
    

    【讨论】:

    • 目前 tomcat 在 lib 目录中找不到 log4j.properties 但我仍在处理它...
    • 请务必定期检查 catalina.out 是否有错误。
    【解决方案2】:

    如果您在应用程序中使用 log4j,Claude Brisson 的答案可能是正确的。最后一部分对我帮助最大。

    我在速度项目的示例中使用 commons-logging-1.1.jar。因此,只需将这两行配置添加到 /WEB-INF/velocity.properties 就是解决方案:

    runtime.log.logsystem.class = org.apache.velocity.runtime.log.ServletLogChute
    runtime.log.logsystem.servlet.level = info
    

    【讨论】:

      猜你喜欢
      • 2011-01-30
      • 1970-01-01
      • 2018-05-22
      • 2018-03-13
      • 1970-01-01
      • 2022-12-04
      • 2019-02-11
      • 2015-11-25
      • 2020-08-11
      相关资源
      最近更新 更多