我已經花了很多時間閱讀關於log4j和它可以實現的不同方式在stackoverflow上的帖子。我決定採用log4j.properties的方法。我仍然在運行到問題時,我從Eclipse中運行,或從螞蟻用:log4j.properties配置問題以及螞蟻配置
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.
我做了兩件事情迄今:
- 在創建的根目錄下的log4j.properties文件/ src文件夾
- 將log4j.properties文件移動到存在.java文件的包中。
這兩個實例都會產生相同的問題。這裏是我用我的類代碼:
private static Logger log = Logger.getLogger(My.class);
我看了一遍又一遍的屬性文件需要在類路徑中。我覺得我已經做到了,但也許沒有。這是我的封裝結構:
SRC
程序包A
myclass.java
log4j.properties(嘗試2)
packageB
- packageC
- 包裝
- log4j.properties(未遂1)
讓我指出我想所有的軟件包每個Java文件中使用相同的log4j.properties。如果有更簡單的方法來配置這個冗餘的應付道具文件,讓我知道。我想我必須切換到使用資源加載器。
移動到我的螞蟻問題:
我有相同的問題螞蟻。我已經添加了我認爲我需要從我在apache網站上閱讀的內容中獲得ant運行w/o問題,但無濟於事。
這裏是我的目標編譯其他項...
<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:/路徑添加到文件中,然後我仍然看到警告......我不知所措。
我的印象是這樣會將我的.properties文件複製到ant的類路徑中。
是的,要選取需要將目錄添加到類路徑的文件。另一種做法是ANT路徑中的pathelement聲明。在一個無關的問題結帳SLF4J和Logback。 –