Java log4j不工作

Java log4j不工作,java,log4j,Java,Log4j,我想使用log4j来生成日志。 为此,我使用以下代码: package com.idm.Test; import org.apache.log4j.Logger; public class log4jExample { static Logger log = Logger.getLogger(log4jExample.class.getName()); public static void main(String[] args) { log.info("He

我想使用log4j来生成日志。 为此,我使用以下代码:

package com.idm.Test;

import org.apache.log4j.Logger;

public class log4jExample {
    static Logger log = Logger.getLogger(log4jExample.class.getName());

    public static void main(String[] args) {
        log.info("Hello this is a debug message 1");
        log.info("Hello this is a debug message 2");
        log.info("Hello this is a debug message 3");
    }
}
我的log4j属性文件如下所示:

# Define the root logger with appender file
log=G:\\logs
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}\\log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
我想在里面生成日志文件

G:\logs\log.out
但问题是,当我运行这个。此路径上没有创建日志文件。 当我已经用log.out名称在该位置创建了一个文件并再次运行时,它不会显示该文件中的日志


我将log4j.properties文件放在com.idm.Test包中。您在代码中使用的是Java Util Logger

import java.util.logging.Logger;
这不是log4j记录器。修复导入并确保找到配置文件(放入类路径或使用
log4j.configuration
system属性指定位置-请参阅)

注意:OP编辑了问题并使用了正确的导入方式


顺便说一下,不要再使用log4j(1)。它已经达到了极限,现在还没有


改为使用(或其他当前的日志框架)。

您应该将log4j.properties放在资源文件夹(source/main/resource)中,我认为它会正常工作。 如果您的项目是java项目(而不是maven项目),我认为您应该更改代码: 包com.idm.Test

导入org.apache.log4j.Logger

公共类log4jExample{ 静态记录器log=Logger.getLogger(log4jExample.class.getName())


}

我按照您的代码和属性做了同样的操作,并创建了日志文件。 在我的例子中,log4j.properties位于类路径的根目录中

i、 e.)

类/log4j.properties
classes/com/idm/Test/log4jExample


请检查log4j.properties的位置。

注意,您没有为属性定义级别logger@Asettouf我应该将其定义到属性文件中吗?@Asettouf我的文件路径是正确的还是我必须更改它?当我使用
import org.apache.log4j.Logger
时,也存在同样的问题。这不是在路径位置上创建的任何文件,如果我已经在位置上创建了一个文件,则不会在此处添加日志。请查看以及log4j1如何尝试查找配置文件。但是,如果您开始使用日志记录(除非您必须处理遗留代码)在控制台上显示我,请不要在log4j1上花费任何时间
log4j:WARN找不到日志记录程序的附加程序(com.idm.log4jExample)。log4j:警告请正确初始化log4j系统。log4j:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息在启动期间使用
-Dlog4j.debug
启用log4j内部日志记录,并检查是否找到了配置文件(请参见此处)。是否有Maven项目?假设OP使用Maven项目结构-但这是错误的。他/她使用EclipseJava项目;相反,通过配置指定位置(log4j提供了
log4j.configuration
system属性)是的,可能您是正确的,因为我不知道如何使用log4j。configuration@upuant我必须在Java项目中放置
log4j.properties
文件的位置?我是否应该将
log4j.properties
文件放置在
src
中?@user3441151可能是-为了解决您当前的问题-,但您真正应该做的是尝试理解log4j是如何加载配置的,以及在类路径根上拥有某些内容意味着什么。您甚至不应该将log4j配置放在应用程序中,它应该是“外部的”。如果您有使用Eclipse的java项目,请检查java构建路径。(单击您的项目并检查菜单:构建路径配置构建路径源选项卡默认输出文件夹)。请将log4j.properties文件放在默认输出文件夹(根目录下)~
public static void main(String[] args) {
    **PropertyConfigurator.configure("yourPath/log4j.properties");**
    log.info("Hello this is a debug message 1");
    log.info("Hello this is a debug message 2");
    log.info("Hello this is a debug message 3");
}