Java log4j不能正常工作
我想使用log4j来生成日志。 为此,我现在用的是下面的代码:Java 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包中。
你在你的代码
import java.util.logging.Logger;
这不是log4j的记录器使用了Java的Util记录仪。修复您的导入,并确保您的配置文件会被发现(要么把在类路径或与log4j.configuration
系统属性specifiy位置 - 见here)
注:OP编辑问题,现在使用正确的进口...
顺便说一句,不要再使用log4j(1)。它已经达到了EOL而不是Java 9 ready。
请使用log4j2(或其他当前日志记录框架)代替。
当我使用'import org.apache.log4j.Logger'时,存在同样的问题。这不会在路径位置创建任何文件,并且如果我已经在位置创建了一个文件,则不会在此处添加日志。 – user3441151
查看[默认初始化过程](http://logging.apache.org/log4j/1.2/manual.html#defaultInit)以及log4j1如何尝试查找配置文件。但是,如果您开始使用日志记录,除非必须处理遗留代码,否则真的不会在log4j1上投入任何时间。 – FrVaBe
在控制台上显示我log4j:WARN无法为记录器找到appender(com.idm.log4jExample)。 log4j:WARN请正确初始化log4j系统。 log4j:WARN请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig了解更多信息。 ' – user3441151
你应该把资源文件夹(源/主/资源)log4j.properties,我认为它会正常工作。 如果你的项目是java项目(不是maven项目),我认为你应该改变你的代码: package com.idm.Test;
import org.apache.log4j.Logger;
公共类log4j例子静态记录器日志= Logger.getLogger(log4jExample.class.getName());
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");
}
}
我也同样喜欢你的代码和properity,和日志文件被创建。 在我的情况下,log4j.properties位于类路径的根目录中。
即)
类/ log4j.properties
类/ COM/IDM /测试/ log4jExample
请,检查log4j.properties的位置。
@upuant在哪里我有将'log4j.properties'文件放在我的Java项目上? – user3441151
我应该将'log4j.properties'文件放在src里面吗? – user3441151
@ user3441151很可能是 - 解决你当前的问题 - 但你真正应该做的是试着理解log4j如何加载配置,以及在classpath根目录下有什么意思。你甚至不应该把你的log4j配置放到你的应用程序中,而应该是“外部的”。 – FrVaBe
请注意,您没有为记录器定义一个水平 – Adonis
@Asettouf我是否应该将其定义到属性文件中? – user3441151
@Asettouf我的文件路径是正确的,或者我必须改变它? – user3441151