2017-09-25 11 views
2
int good = (int)(Math.random() * 6 + 1); 
if(good == 1){ 
    JOptionPane.showMessageDialog(frame, "Green result 1"); 
    Logger logger = Logger.getLogger(DiceRoll.class.getName()); 
    FileHandler fileLog = new FileHandler("Logs.log"); 
    logger.addHandler(fileLog); 
    logger.log(Level.INFO, "Green result 1"); 
} 

Ce code est censé (en bas) mettre "Green result 1," dans un fichier, mais il écrase le fichier chaque fois que je lance le programme. Comment pourrais-je le faire mettre le texte dans le fichier, mais ne pas l'écraser? Toute aide sera très appréciée.Java Logger écrase chaque fois que j'essaie de mettre du texte dans un fichier journal

Répondre

0

Modifier ceci:

FileHandler fileLog = new FileHandler("Logs.log"); 

à cette

FileHandler fileLog = new FileHandler("Logs.log", true); 

rappelle que le deuxième argument spécifie l'argument append en option. Lorsque vous définissez à true, vous écrirez à la fin du fichier, sans l'écraser.

Jetez un oeil à la documentation: Documentation

1

Vous devez utiliser append:true avec le FileHandler comme:

FileHandler fileLog = new FileHandler("Logs.log", true); 

java.util.logging.FileHandler.append indique si le FileHandler doit ajouter sur tous les fichiers existants (par défaut à false).

+1

Merci beaucoup. –

+0

@DarthFigo J'espère que cela a aidé. Acceptez-le comme une réponse pour être utile pour l'avenir. – nullpointer

0

Essayez cette

FileHandler fileLog = new FileHandler("Logs.log",true); 
0

Essayez d'utiliser le FileHandler constructor qui vous permet de spécifier l'argument booléen pour le mode append.

+0

Il vient avec du code XML dans le fichier. –