【问题标题】:Warning when starting spring tool suite启动 spring 工具套件时的警告
【发布时间】:2013-10-09 17:30:11
【问题描述】:

我刚开始在 Ubuntu Desktop AMD64 13.10 上尝试 oracle java 7u40 下的 spring 工具套件 v3.4.0 但是,当我从命令提示符启动应用程序时,我收到以下警告:

log4j:WARN 找不到记录器的附加程序(org.springsource.ide.eclipse.commons.core.templates.TemplateProcessor)。 log4j:WARN 请正确初始化log4j系统。

我可能需要在某处配置 log4j.properties,但是我不确定在何处以及如何将配置链接到 STS。有没有人有 STS 的 log4j.properties 以及如何将它链接到 STS 启动。

我尝试了以下 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
  <appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </appenders>
  <loggers>
    <root level="trace">
      <appender-ref ref="Console"/>
    </root>
  </loggers>
</configuration>

并添加了如下环境变量:

export JAVA_OPTS=-Dlog4j.configurationFile=~/Log4j/log4j2.xml

但是,我在启动 STS 时仍然收到相同的警告。

【问题讨论】:

  • 您没有链接log4j 属性文件。你把它放在类路径中,Spring 会在运行时发现它。
  • 怎么样?我下载了 log4j 框架,它在我的类路径中。
  • 我不是这个意思。您需要创建一个属性文件并将其也放在类路径中。如果它在正确的位置(阅读文档),它将被自动发现。
  • 我阅读了这个:logging.apache.org/log4j/2.x/manual,但找不到它。
  • log4j 版本 2 可能不再支持 .properties 文件,但它确实支持 JSON 或 XML。看看configuration page

标签: spring log4j log4j2 spring-tool-suite


【解决方案1】:

您有多种选择:

  1. 指定 log4j 配置文件在文件系统上的位置。文件中的路径: URL 必须是绝对的。在 Windows 上,file: URL 以“file:/”或“file:///”开头,并且 '/' 字符替换路径中的 '\' 字符。你的行是:

    export JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/your/log4j2.xml
    
  2. 指定 log4j 配置文件相对于类路径条目的位置。如果“/path/to/your/”目录在类路径上,您的行将是:

    export JAVA_OPTS=-Dlog4j.configurationFile=log4j2.xml
    
  3. 指定要用于所有 JVM 的 log4J 配置文件的位置。你的行是:

    export _JAVA_OPTIONS=-Dlog4j.configurationFile=file:/path/to/your/log4j2.xml
    
  4. 在您的应用程序的 Java 命令行上指定 log4j 配置文件的位置。你的行是:

    -Dlog4j.configurationFile=file:/path/to/your/log4j2.xml
    

在您的问题中,您没有指定您正在运行的应用程序,但这些选项都可以工作。

如果您尝试指定在 JEE 容器上运行的应用程序中使用的 log4j 配置,例如web应用,请参考log4j documentation

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    我最初的假设和答案是不正确的。

    设置 JVM 选项 -Dlog4j.debug=true 表明 Eclipse 会忽略 log4j.configurationFile 属性并在类路径中查找 log4j.xml 或 logj.properties。

    我不知道如何更改 Eclipse 的系统类路径,所以我将 log4j 配置放在 JRE 的 endorsed 目录中。步骤是:

    1. 将 log4j 配置文件放入 jar 文件中,例如 log4jconfig.jar
    2. 将该 jar 文件放在 JRE 的认可目录中。在我的 Windows 7 系统上,这是“...\JDK1.7.0\jre\lib\endorsed”。如果该目录不存在,请创建它。

    我使用的log4j配置是:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    
        <appender name="Console" class="org.apache.log4j.ConsoleAppender">
            <param name="Threshold" value="ALL" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
            </layout>
        </appender>
    
        <root>
            <level value="all" />
            <appender-ref ref="Console" />
        </root>
    
    </log4j:configuration>
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 2021-06-12
      • 2017-02-16
      • 2017-06-01
      • 1970-01-01
      相关资源
      最近更新 更多