请检查项目结构的附图,如果我将log4j2.properties定位好,请告诉我。 还看看我正在使用的罐子版本。 我写了一个简单的程序来在控制台上打印日志。为了实现这一点,我写了log4j2.properties文件如下。
log4j.rootLogger = INFO,file
log4j.appender.file = org.apache.logging.log4j.core.appender.ConsoleAppender
log4j.appender.file.Target = System.out的
log4j.appender.file.Layout = org.apache.logging.log4j.core.layout.PatternLayout
log4j.appender.file.Layout.ConversionPattern =%d {yyyy-MM-dd HH:mm:ss}%-5p%c {1}:%L - %m%n
主程序如下。(也显示在图像中)
package goldensource.track.logs;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.util.PropertiesUtil;
public class TestLogger {
private Logger logger;
private PropertiesUtil pu;
TestLogger()
{
System.setProperty("log4j.configurationFile","log4j2.properties");
logger = LogManager.getLogger(TestLogger.class);
logger.info("Yes I am there!");
logger.debug("I am debugging!");
logger.warn("giving you a warner!");
}
public static void main(String[] args) {
TestLogger z = new TestLogger();
}}
我创建了一个PropertiesUtil的引用,但无论如何我都没有使用它。
当我执行此程序时,控制台上没有显示任何内容。我可以说,我无法正确加载属性文件。
建议我对示例进行任何修改或替代。
提前致谢!
答案 0 :(得分:0)
如果没有任何关于您所获得的错误的反馈,我可以猜测其中一个问题是文件名。在设置系统属性时,应指定log4j2.properties文件的绝对路径:
System.setProperty("log4j.configurationFile","/absolute/path/to/log4j2.properties");
通过这种方式,记录器系统将确切地知道在哪里找到您的文件。