我正在开发一个具有Maven性质的小型RCP项目,现在我希望添加log4j依赖项。
为此,我所做的是:
# 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
<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下载它时,它无法正常工作。知道为什么会这样吗?
答案 0 :(得分:1)
如果将Maven与Eclipse RCP结合使用,则应考虑使用Tycho [1]。 Tycho使用MANIFEST优先方法,因此您无需编辑pom文件。
此外,您应该将log4j.properties放入一个片段,并将log4j-bundle作为host-plugin。
答案 1 :(得分:0)
我希望在这个网站上解释清楚。这会对你有所帮助。
http://www.mkyong.com/logging/log4j-hello-world-example/
我真诚的建议是,在项目实施之前尝试创建一个示例示例。如果成功,您可以将其应用到项目中。