我正在研究一个具有Maven特性的小型RCP项目,现在我希望添加log4j依赖项。
为此我所做的是:如何使用Maven在RCP应用程序中使用log4j?
- 添加log4j.properties里面的项目bin文件夹下。 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中
- 在Java代码我写的是这样的:
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
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文件以告知系统放置日志文件的位置以及所有文件。 –
SubbaReddy
已经在C:\ Users \ me \ .m2 \ repository \ log4j \ log4j \ 1.2.17文件夹下载了log4j.jar文件夹 –
“REST项目具有Maven特性”是什么意思?你如何管理RCP的依赖关系?你如何构建和运行你的RCP项目? – jhyot