2010-04-30 4 views
4

java.util.logging.Logger переопределяет (заменяет) данные файла вместо добавления в конец файла.java.util.logging.Logger переопределяет данные

Это правильно? должен ли я создать 1 файл для каждого раза при инициализации приложения и системы журналов?

Если нет, как я могу настроить его для записи в конец файла?

ответ

10

java.util.logging.FileHandler.append=true

Дописывать определяет, будет ли FileHandler следует добавлять на любые существующие файлы (по умолчанию false).

FileHandler Doc

Есть и другие свойства, которые имеют контроль над, как размер файлов журналов и сколько цикла через, но я думаю, что свойство является один вы обеспокоены.

+0

ОК, но теперь он добавляется как новый файл, создавая новый заголовок xml и новый корневой тег .. есть ли способ решить это? –

+0

@Tom Brito - что вы ожидаете от этого? Прочитайте существующий файл, чтобы узнать, имеет ли он заголовок и корневой элемент XML? И как вы предлагаете обеспечить, чтобы файл журнала XML получал закрывающий тег для его корневого элемента? –

+0

@Stephen, если у него нет закрывающего тега, файл поврежден, это не допустимый xml. –

7

Привет, хотел бы улучшить ответ с помощью этого фрагмента кода.

import java.io.IOException; 
import java.util.logging.FileHandler; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import java.util.logging.SimpleFormatter; 

public class MyTestLogger { 
    public static void main(String[] args) throws SecurityException, 
      IOException { 
     /* 
     * The below line is the syntax for the file handler which has the capability of 
     * appending the logs in the file. The second argument decides the appending. 
     * FileHandler fileTxt = new FileHandler("eLog.txt", true); 
     */ 
     FileHandler fileTxt = new FileHandler("eLog.txt", true); 
     SimpleFormatter formatter = new SimpleFormatter(); 
     fileTxt.setFormatter(formatter); 
     Logger LOGGER = Logger.getLogger(MyTestLogger.class.getName()); 
     LOGGER.addHandler(fileTxt); 
     LOGGER.setLevel(Level.SEVERE); 
     LOGGER.severe("This is a serious problem !"); 
    } 
} 
Смежные вопросы