Java应用程序中slf4j的问题

时间:2016-09-22 04:15:20

标签: java slf4j

我正在尝试使用Java应用程序(而不是web)在Netbeans上配置slf4j。 我添加了库:

  • SLF4J-log4j12-1.6.4.jar
  • SLF4J-API-1.6.4.jar

我的代码喜欢这个:

public class TestLogger {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    Logger logger = LoggerFactory.getLogger(TestLogger.class);
    logger.info("Hello worlds");
}
}

我没有在我读过的一些指南中提到的任何pom.xml。 它是什么?

我的输出:

run:
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
at testlogger.TestLogger.main(TestLogger.java:22)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
Exception in thread "main" java.lang.NoClassDefFoundError:       org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
at testlogger.TestLogger.main(TestLogger.java:22)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

我知道我必须配置.xml文件,以便slf4j可以顺利运行。 但我不知道如何以及在哪里。

P / s:什么是pom.xml?我在一些教程中看到了很多。

1 个答案:

答案 0 :(得分:0)

如果您只包含这两个库,那么您将缺少核心log4j12库,这是实际的记录器实现。

但是,log4j12已经过时且不再受支持,所以你应该使用log4j2,在这种情况下有两个库,即api和" core"您需要下载。