Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j配置问题-Log4j:警告请正确初始化Log4j系统_Java_Logging_Log4j_Environment - Fatal编程技术网

Java Log4j配置问题-Log4j:警告请正确初始化Log4j系统

Java Log4j配置问题-Log4j:警告请正确初始化Log4j系统,java,logging,log4j,environment,Java,Logging,Log4j,Environment,我得到一个错误: log4j:WARN No appenders could be found for logger (java.lang.Class). log4j:WARN Please initialize the log4j system properly. 我已经通过许多线程和论坛来修复上述错误,但找不到解决问题的方法 问题:我的要求指定我们为每个环境使用以下文件名 log.dev log.local 日志测试 如何配置我的应用程序以检测这些日志文件?log4j必须正确配置以记录到

我得到一个错误:

log4j:WARN No appenders could be found for logger (java.lang.Class).
log4j:WARN Please initialize the log4j system properly.
我已经通过许多线程和论坛来修复上述错误,但找不到解决问题的方法

问题:我的要求指定我们为每个环境使用以下文件名

log.dev
log.local
日志测试


如何配置我的应用程序以检测这些日志文件?

log4j必须正确配置以记录到文件

试试这个:

Logger logger = Logger.getLogger(yourclassname.class);
BasicConfigurator.configure(); // basic log4j configuration
Logger.getRootLogger().setLevel(Level.INFO);  
FileAppender fileAppender = null;
try {
  fileAppender =
      new RollingFileAppender(new PatternLayout("%d{dd-MM-yyyy HH:mm:ss} %C %L %-5p:%m%n"),"file.log"); 
  logger.addAppender(fileAppender);  
} catch (IOException e) {
  e.printStackTrace();
}

logger.info("TEST LOG ENTRY");
这将在本地文件夹中创建名为file.log的日志文件。 根据切换文件的需要,使用java程序和逻辑删除Appender和addAppender

或者,如果在整个程序中需要动态切换,则可以创建多个记录器实例,每个实例都有一个fileAppender


这种使用log4j的方式避免了对外部配置文件log4j.properties的需要。

或者您也可以编写一个配置文件,并使用启动选项
-Dlog4j.configuration=file:log4j.properties
指向它log4j 2是否仍然使用属性文件?我在可能的副本中找不到这方面的任何提及