gpt4 book ai didi

java - log4j.properties 配置问题以及 ant 配置

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:42 26 4
gpt4 key购买 nike

我花了很多时间阅读 stackoverflow 上关于 log4j 及其不同实现方式的帖子。我决定采用 log4j.properties 的方法。当我从 eclipse 或 ant 中运行时,我仍然遇到问题:

log4j:WARN No appenders could be found for logger (My.Class).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

到目前为止我做了两件事:

  • 在/src 文件夹的根目录下创建了 log4j.properties 文件
  • 将 log4j.properties 文件移动到 .java 文件所在的包中。

这两个实例产生相同的问题。这是我在类里面使用的代码:

private static Logger log = Logger.getLogger(My.class);

我一遍又一遍地读到属性文件需要在类路径中。我觉得我已经做到了,但也许没有。这是我的包结构:

来源

  • 包A

    • myclass.java

    • log4j.properties(尝试 2)

  • 包B

  • 包C
  • packageD
  • log4j.properties(尝试 1)

让我指出,我希望所有包中的每个 java 文件都使用相同的 log4j.properties。如果除了冗余地处理 props 文件之外还有更简单的配置方法,请告诉我。我在想我必须改用资源加载器。

继续我的 Ant 问题:

我在 ant 中有完全相同的问题。我已经从我在 apache 的网站上阅读的内容中添加了我认为我需要的内容,以使 ant 运行没有问题,但无济于事。

这是我的编译目标中的附加条目...

<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar">
<include name="**/*.properties"/>
</fileset>
</path>

<target>
<javac srcdir="${source.dir}" destdir="${classes.dir}" classpathref="classpath" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"/>
<copy todir="${classes.dir}">
<fileset dir="${source.dir}" excludes="**/*.java"/>
</copy>
</target>

我还应该注意到我的 junit 目标包含类路径。

我还尝试将 -Dlog4j.configuration=file:/path 添加到文件中,之后我仍然看到警告...我不知所措。

我的印象是这会将我的 .properties 文件复制到 ant 的类路径中。

最佳答案

对于我添加的 Ant :

<path id="properties">
<dirset dir="${config.dir}"/>
</path>

其中 ${config.dir} 是 log4j.properties 所在的/src/config 文件夹的路径。

仍在努力使 eclipse 正常工作,它与 eclipse 中的类路径应该没有太大区别。

谢谢!

关于java - log4j.properties 配置问题以及 ant 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com