当前位置: 首页 > 知识库问答 >
问题:

无法将slf4j与log4j一起使用写入日志文件

毋修为
2023-03-14

我试图写一个日志文件使用slf4j与log4j.我可以看到控制台中的日志。但它没有写入日志文件

这是我的log4js属性文件

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
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

# Direct log messages to 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

我已经包括了slf4j-api-1.7。5.jar,slf4j-log4j12-1.7。5和log4j-1.2。8.jar在我的类路径中。

我用下面的方法写日志。

private static final String _CONSOLE_INFO = "_CONSOLE_INFO";

    public static void stdInfo( String message )
        {
            org.slf4j.Logger logger = LoggerFactory.getLogger( _CONSOLE_INFO );
            logger.warn( message );
        }

任何帮助我都将不胜感激。谢谢

共有2个答案

孟承嗣
2023-03-14

您可以像这样在类级别编写logger对象。

public class MainDB {


private static final Logger log = Logger.getLogger(MainDB.class);

public static void main(String[] args)throws IOException,SQLException{

         log.debug("Debug");
         log.info("Info");
     }

    }
赖淇
2023-03-14

您应该尝试使用LoggerFactory。getLogger(MyClass.class) 而不是您的代码。

 类似资料:
  • 我决定使用slf4j而不是Java自己的日志记录。我已经成功地使用SLF4J登录到控制台。但我不知道如何将其写入日志文件。日志文件将帮助我们收集运行时可能出现的错误。 我通过这样做来实现slf4j, 私有静态最终org.slf4j.LOGGER LOGGER=org.slf4j.loggerfactory.getlogger(class1.class); PropertyConfigurator.

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

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • 我开始将与一起使用,但问题如下。pom文件中我错了什么或缺少什么? 我的pom.xml: 我非常简单的代码:

  • 我在我的项目中使用log4j。我想有标准输出、调试记录器和最终报告记录器。调试记录器几乎写调试/信息级别的消息。报告将是不同的记录器,只写信息消息。我尝试了不同的方法,阅读了很多示例,我仍然无法解决这个问题。要么我丢失了我的标准输出,要么我将所有调试写入两个记录器。 我的密码在这里 } 任何提示都将不胜感激

  • 问题内容: SLF4J的“ Hello World”示例对我不起作用。我猜这是因为我在类路径中添加了slf4j-log4。我应该直接配置log4j以便您好工作吗? 更新 :我添加了log4j初始化,但仍然无法正常工作: 我得到: 问题答案: 如果要使用,则需要在类路径中使用以下文件: slf4j-api-1.6.1.jar slf4j-simple-1.6.1.jar 如果要使用和,则需要在类路径