【发布时间】:2016-01-13 13:09:02
【问题描述】:
我正在开发一个具有 Maven 特性的小型 RCP 项目,现在我希望添加 log4j 依赖项。
为此,我所做的是:
- 在项目内的 bin 文件夹下添加了 log4j.properties。 bin 是生成所有类文件的文件夹。该文件如下所示:
# Root logger option
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
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
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\Srijani\\Personal Workspace\\RCP\\EditorApp\\log\\Application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
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
- 在 pom.xml 中添加了这个依赖项
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
- 在java代码中我是这样写的:
import org.apache.log4j.Logger;
import com.app.editor.constants.Constants;
public class DatabaseConnection {
final static Logger logger = Logger.getLogger(DatabaseConnection.class);
}
此代码在编译时不会产生任何问题。但是,在运行代码时,我得到了这个错误:
!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-01-13 13:50:35.397
!MESSAGE Unable to create class 'org.eclipse.ui.internal.e4.compatibility.CompatibilityView' from bundle '55'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
注意:我没有向 MANIFEST.MF 和 build.properties 添加任何内容。 请帮忙!
谢谢
更新:遇到了问题,但不知道如何解决。当我手动下载 jar 并将其设置在类路径中时,我可以在 Eclipse RCP 中使用 log4j。但是,当我尝试通过 Maven 下载它时,它不起作用。知道为什么会这样吗?
【问题讨论】:
-
您收到 NoClassDefFoundError,最好在下载 Log4j-
.jar 文件后检查或不在 .m2(存储库)下。此外,您必须声明 Log4j.properties 文件以告诉系统将日志文件放置在何处以及所有内容。 -
log4j.jar 已经下载到 C:\Users\me\.m2\repository\log4j\log4j\1.2.17 文件夹
-
“具有 Maven 特性的 RCP 项目”到底是什么意思?您如何管理 RCP 的依赖关系?您如何构建和运行您的 RCP 项目?
标签: java maven log4j swt eclipse-rcp