java slf4j log4j_java-如何使SLF4J“ Hello World”与log4j一起使用?

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

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].

4个解决方案

74 votes

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

slf4j-api-1.6.1.jar

slf4j-simple-1.6.1.jar

如果要使用slf4j simple和INFO,则需要在类路径上使用以下log4j文件:

slf4j-api-1.6.1.jar

slf4j-log4j12-1.6.1.jar

log4j-1.2.16.jar

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

darioo answered 2020-02-10T13:52:27Z

44 votes

以下是一个示例。 您可以查看详细信息[http://jkssweetlife.com/configure-slf4j-working-various-logging-frameworks/],并在此处下载完整代码。

如果您使用的是maven,则将以下依赖项添加到pom中,否则,只需下载jar文件并将其放在类路径中

public class Slf4jExample {

public static void main(String[] args) {

Logger logger = LoggerFactory.getLogger(Slf4jExample.class);

final String message = "Hello logging!";

logger.trace(message);

logger.debug(message);

logger.info(message);

logger.warn(message);

logger.error(message);

}

}

配置log4j.properties

public class Slf4jExample {

public static void main(String[] args) {

Logger logger = LoggerFactory.getLogger(Slf4jExample.class);

final String message = "Hello logging!";

logger.trace(message);

logger.debug(message);

logger.info(message);

logger.warn(message);

logger.error(message);

}

}

Java示例

public class Slf4jExample {

public static void main(String[] args) {

Logger logger = LoggerFactory.getLogger(Slf4jExample.class);

final String message = "Hello logging!";

logger.trace(message);

logger.debug(message);

logger.info(message);

logger.warn(message);

logger.error(message);

}

}

ylu answered 2020-02-10T13:53:14Z

3 votes

you need to add 3 dependency ( API+ API implementation + log4j dependency)

Add also this

org.apache.logging.log4j

log4j-core

2.5

# And to see log in command line , set log4j.properties

# Root logger option

log4j.rootLogger=INFO, file, stdout

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

#And to see log in file , set log4j.properties

# Direct log messages to a log file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=./logs/logging.log

log4j.appender.file.MaxFileSize=10MB

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

Shantonu answered 2020-02-10T13:53:30Z

0 votes

我有同样的问题。 直接使用log4j api时,我从代码中的log4j.properties文件中调用了自己的自定义记录器。 如果使用的是slf4j api调用,则可能使用的是默认的根记录器,因此必须在log4j.properties中将其配置为与附加程序关联:

# Set root logger level to DEBUG and its only appender to A1.

log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.

log4j.appender.A1=org.apache.log4j.ConsoleAppender

Lund Wolfe answered 2020-02-10T13:53:51Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值