我正在尝试根据输入参数将项目中的数据记录到文件中。我的项目有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表示用户的名称。现在,一旦我在应用程序的开头配置它,只有两个类在文件中写入日志,第三个文件包含要发送的代码和接收数据不会将日志写入日志文件。这里有什么我想念的东西吗?
请帮我解决这个问题。
答案 0 :(得分:0)
有可能在您有机会配置记录器之前已经记录了第三个类。这是我切换到logback的一个原因:它有一个更强大(更好记录)的配置文件格式。
上面的代码也包含一个问题:
if(fileapp != null)
logger.removeAppender(fileapp);
logger
未在任何地方定义,fileapp
必须为非空,否则您将在以后获得NPE。
答案 1 :(得分:0)
请确保在配置之前 您的第三堂课不应记录 。