【问题标题】:Ant logger level ignored in Eclipse ONLY when "Run in the same JRE as the workspace"仅当“在与工作区相同的 JRE 中运行”时在 Eclipse 中忽略 Ant 记录器级别
【发布时间】:2011-04-04 02:08:40
【问题描述】:

这是我在这里的第一篇文章,祝我好运。

在 Eclipse 中运行我的 Ant 构建文件时,我的 Log4J 记录器级别没有写入控制台。

即使我在 log4j.properties 中指定了“调试”,我也只能看到“信息”和更高版本。我知道它正在找到我的 log4j.properties,因为当我临时删除 log4j.properties 并运行 Ant 构建时,Ant 会抱怨。

相比之下,当我从命令行运行 Ant 构建时,我能够看到正确的日志记录(调试与信息)。如果我编辑 ant 文件配置并选择“Separate JRE”,我什至可以让它在 Eclipse 中显示。但是,我更喜欢“在与工作区相同的 JRE 中运行”(除非有人反对)。

如果有要求,我很乐意回复任何其他要求的详细信息。现在,我将添加一些关于我的环境的详细信息:

Windows XP

面向 Web 开发人员的 Eclipse Java EE IDE Helios SR 2 (v. 3.6.2)

蚂蚁 v1.8.2

Java JDK 1.6.0_24

如前所述,如果我选择“单独的 JRE”,我可以在 Eclipse 中显示调试日志级别,这与 1.6.0_24 完全相同,只是现在不在 Eclipse 中运行。

【问题讨论】:

    标签: eclipse ant


    【解决方案1】:

    要在 Eclipse 中使用特定的命令行参数运行 ant 脚本,f.e.你的 log4j 监听器 =

    • 专注于工作区中的 ant 脚本
    • 上下文菜单使用“2 Run as Ant Build”
    • 在“编辑配置”对话框中选择“主”选项卡
    • 在“参数”文本字段中设置命令行参数 =

    -logger org.apache.tools.ant.listener.Log4jListener 等..

    另见Ant Manual Listeners and Loggers

    【讨论】:

    • 感谢您的回答。为了缩小问题的范围,我创建了一个简单的 HelloWorld 类,其中包含用于调试、信息、警告和测试的 log4j 语句,并使用“在与工作区相同的 JRE 中运行”在 Eclipse 中的 ant 中运行它。简单的测试工作正常。所以现在我回到我遇到问题的更复杂的例子。问题代码是在 ant 和 eclipse 中使用 org.hibernate.tool.ant.HibernateToolTask​​。它的记录器语句没有在 Eclipse 中生成,但在从命令行或通过 Eclipse 运行 ant 并单独的 JRE 时可以正常打印。
    • 所以底线是 log4j 在 Eclipse 中与 Ant 一起工作,只是在我在 Eclipse 中运行 HibernateToolTask​​ ant 任务的特定情况下无法工作(从命令行工作正常)。
    • 好的,所以你的问题得到了回答;-) 从来没有使用过 Hibernate,但是 IMO 剩下的问题只是你的 hibernate 任务的配置问题,eclipse 不知道你的 hibernate-log4j .properties 配置文件。请注意,还有一个用于 Eclipse => hibernate.org/subprojects/tools.html 的 Hibernate 插件。文档中也提到了日志记录 => docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多