log4j 没有记录来自某些 java 类 的详细信息
log4j not logging the details coming from some java classes
我正在尝试根据输入参数将项目中的数据记录到文件中。我的项目有 5 个 类,其中 3 个包含日志消息。
我使用下面的代码来配置log4j。
public static void configureLog4j(String log4j,String logs,String timeStamp) throws IOException {
PropertyConfigurator.configure(log4j);
FileAppender fileapp = (FileAppender) Logger.getRootLogger().getAppender("FILE");
if(fileapp != null)
logger.removeAppender(fileapp);
String filename = logs + "/test_" + info + "_" + timeStamp;
fileapp.setFile(filename);
fileapp.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"));
fileapp.setWriter(new FileWriter(new File(fileapp.getFile())));
Logger.getRootLogger().addAppender(fileapp);
}
info 表示用户名。现在,一旦我在应用程序的开头配置了这个,只有两个 类 在文件中写入日志,第三个文件包含发送和接收数据的代码,不会将日志写入日志文件。我在这里遗漏了什么吗?
请帮我解决这个问题。
有可能第三个 class 在您有机会配置记录器之前就已经在记录了。这是我切换到 logback 的原因之一:它具有更强大(和更好记录)的配置文件格式。
上面的代码也有问题:
if(fileapp != null)
logger.removeAppender(fileapp);
logger
未在任何地方定义,并且 fileapp
必须为非空,否则稍后会出现 NPE。
请确保您的第三个class在配置前不应该记录。
我正在尝试根据输入参数将项目中的数据记录到文件中。我的项目有 5 个 类,其中 3 个包含日志消息。
我使用下面的代码来配置log4j。
public static void configureLog4j(String log4j,String logs,String timeStamp) throws IOException {
PropertyConfigurator.configure(log4j);
FileAppender fileapp = (FileAppender) Logger.getRootLogger().getAppender("FILE");
if(fileapp != null)
logger.removeAppender(fileapp);
String filename = logs + "/test_" + info + "_" + timeStamp;
fileapp.setFile(filename);
fileapp.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"));
fileapp.setWriter(new FileWriter(new File(fileapp.getFile())));
Logger.getRootLogger().addAppender(fileapp);
}
info 表示用户名。现在,一旦我在应用程序的开头配置了这个,只有两个 类 在文件中写入日志,第三个文件包含发送和接收数据的代码,不会将日志写入日志文件。我在这里遗漏了什么吗?
请帮我解决这个问题。
有可能第三个 class 在您有机会配置记录器之前就已经在记录了。这是我切换到 logback 的原因之一:它具有更强大(和更好记录)的配置文件格式。
上面的代码也有问题:
if(fileapp != null)
logger.removeAppender(fileapp);
logger
未在任何地方定义,并且 fileapp
必须为非空,否则稍后会出现 NPE。
请确保您的第三个class在配置前不应该记录。