当前位置: 首页 > 面试题库 >

如何使SLF4J“ Hello World”与log4j一起使用?

陈正业
2023-03-14
问题内容

SLF4J的“ Hello
World”示例对我不起作用。我猜这是因为我在类路径中添加了slf4j-log4。我应该直接配置log4j以便您好工作吗?

log4j:WARN No appenders could be found for logger (HelloWorld).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

更新 :我添加了log4j初始化,但仍然无法正常工作:

public static void main(String[] params) {
        org.apache.log4j.Logger.getRootLogger().addAppender(new ConsoleAppender());
        Logger logger = org.slf4j.LoggerFactory.getLogger(TestBase.class);
        logger.info("Hello World");
    }

我得到:

log4j:ERROR No output stream or file set for the appender named [null].

问题答案:

如果要使用slf4j simple,则需要jar在类路径中使用以下文件:

  • slf4j-api-1.6.1.jar
  • slf4j-simple-1.6.1.jar

如果要使用slf4jlog4j,则需要jar在类路径中使用以下文件:

  • slf4j-api-1.6.1.jar
  • slf4j-log4j12-1.6.1.jar
  • log4j-1.2.16.jar

不多不少。使用slf4j simple,您将获得基本日志记录到控制台INFO或更高级别的控制台。使用时log4j,必须对其进行相应的配置。



 类似资料:
  • 从log4j文档中,我知道这些是h中的级别http://logging.apache.org/log4j/1.2/manual.html 跟踪、调试、信息、警告、错误和致命错误 致命的是最高水平。但无法理解跟踪和调试之间的区别。我尝试过将日志级别设置为debug,并且可以看到跟踪消息。但是当我将日志级别设置为跟踪时,我看不到调试消息。 意思是调试

  • 我有一个用Maven构建的RESTJava应用程序。它由一个包含两个模块的项目组成: myapp_server(父项目) myapp_rest myapp_logging 这是父POM: 这是的POM(使用dropwizard中的java简单原型创建): 这是的 POM: 我想让所有日志都通过,以便使用进行日志记录。删除向导在内部使用日志,所以我试图让它使用slf4j。 如果我运行这个项目,我会得

  • 我一直在尝试遵循这个网站和其他网站上的食谱,了解如何将log4j2 FileAppender实例添加到使用SLF4J API进行整体日志记录的类中,但我运气不佳。有人能告诉我下面的代码哪里出错了吗? assertTrue语句通过,因此文件由FileAppender创建,但assertEquals失败,因为日志线的长度为零(即日志文件没有内容)。 有什么想法吗?

  • 我目前正在启动一个新的Webapp(在tomcat 6上运行)。我有使用slf4j的组件和使用commons日志的组件。我计划使用log4j 2.0作为日志实现,原因有几个(主要针对Appender:SocketAppender和SyslogAppender,但也因为在不丢失日志事件的情况下升级配置重新加载) 现在我的问题是:-我应该用哪个接口来编程我的新类?loag4j还是slf4j?或者甚至是

  • 我想从Log4j 1.x迁移到Log4j 2.x。所以我尝试使用Log4j-1.2-api。jar,如本文所述。我的应用程序实现了org.apache.log4j.spi。LoggingEvent,但我找不到将LoggingEvent与log4j 2.x api桥一起使用的方法。我是否可以将LoggingEvent与log4j 2.2一起使用? 谢谢。

  • 主要内容:SLF4J 与 Log4j 的区别,为什么 SLF4J 优于 Log4J?SLF4J 与 Log4j 的区别 SLF4J(Simple Logging Façade for java)是一个 API,旨在提供对许多日志框架的通用访问,log4j 就是其中之一。 它基本上是一个抽象层。它不是日志记录实现。这意味着如果您正在编写一个库并且您使用 SLF4J,您可以将该库提供给其他人使用,他们可以选择与 SLF4J 一起使用的日志记录实现,例如 log4j 或 Java 日志