启动弹簧工具套件时发出警告

时间:2013-10-09 17:30:11

标签: spring log4j log4j2 spring-tool-suite

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

log4j:WARN找不到logger(org.springsource.ide.eclipse.commons.core.templates.TemplateProcessor)的appender。 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时仍然会收到相同的警告。

2 个答案:

答案 0 :(得分:1)

您有多种选择:

  1. 指定文件系统上log4j配置文件的位置。文件中的路径:URL必须是绝对的。在Windows上,文件: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
    
  5. 在您的问题中,您没有指定正在运行的应用程序,但这些选项都可以正常运行。

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

    我希望这可以帮助你。

答案 1 :(得分:0)

我原来的假设和回答是不正确的。

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

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

  1. 将log4j配置文件放在jar文件中,例如log4jconfig.jar
  2. 将该jar文件放入JRE的endorsed目录中。在我的Windows 7系统上,这是“... \ JDK1.7.0 \ jre \ lib \ endorsed”。如果该目录不存在,请创建它。
  3. 我使用的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>
    

    我希望这会有所帮助。