我知道這個問題之前已被問過,但我找不到一個乾淨的解決方案。一切工作正常,直到我決定修改pom.xmlMaven log4j - 沒有找到記錄器的appender
這就是我所做的。
我修改了pom.xml中資源文件的目標目錄。當我建我的項目爲jar文件,我希望把資源文件在同一目錄中的jar (ie: RootProjDir/target)
而不是RootProjDir/target/classes
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>directories.properties</include> <include>webconfig.properties</include> <include>log4j.properties</include> </includes> <targetPath>${project.build.directory}</targetPath> </resource> </resources>
是這是我的log4j.properties內容。我要記錄到日誌文件,並在終端打印出:
# output log to console and logfile
log4j.rootLogger=DEBUG, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/Users/nuttynibbles/Documents/workspace/javaWorkspace/RootProjDir/rootproj.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
當我執行的JAR文件,我得到了以下錯誤:
java -jar RootProjDir.jar
log4j:WARN No appenders could be found for logger (org.Main).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我找到了解決辦法,但在線它不似乎是一個乾淨的解決方案設置在main()log4j.properties文件目錄:
public static void main(String[] args) {
// This will tell log4j to read the log4j.properties in RootProDir/target
PropertyConfigurator.configure(System.getProperty("user.dir") + "/log4j.properties");
}
我應該怎麼辦?
參考文獻:
這似乎是重複http://stackoverflow.com/questions/12532339/no-appenders-could-be-found-for-loggerlog4j – 2014-12-02 13:02:08
是的問題是相同的,但解決方案不是。當我使用BasicConfigurator.configure()時,它只記錄到終端,而不是文件。我想記錄文件和終端。如果你仔細閱讀我的問題,我不想使用PropertyConfigurator。有其他解決方法嗎? – nuttynibbles 2014-12-02 13:04:56