0

我刚开始在 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 时仍然收到相同的警告。

4

2 回答 2

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 容器上运行的应用程序(例如 Web 应用程序)中使用的 log4j 配置,请参阅log4j 文档

我希望这能够帮到你。

于 2014-01-09T14:44:30.297 回答
0

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

设置 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>

我希望这有帮助。

于 2014-01-09T16:44:04.337 回答