创建记录

创建记录

问题描述:

我创建在一个特定的路径.log文件文件,但我有一个问题,创建一个静态类和每一个我称之为一个新的.log文件创建writingLike的方法时,这是必要的注册表总是保持在同一个文件中。创建记录

下面是测试代码:

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

public class Utils { 

    public static void escribirLog(String rutaArchivo, String mensaje) { 

     Logger logger = Logger.getLogger("MyLog"); 
     FileHandler fh; 

     try { 

      fh = new FileHandler(rutaArchivo); 
      logger.addHandler(fh); 

      SimpleFormatter formatter = new SimpleFormatter(); 
      fh.setFormatter(formatter); 

      logger.info(mensaje); 

     } catch (SecurityException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String... args){ 
     for(int i=1;i<6;i++){ 
      escribirLog("C:\\rutaLog\\archivo.log", "MensajePrueba"+i); 
     } 
    } 
} 

enter image description here

我能做些什么,总是写在同一个文件中的日志?

你需要构建一个文件处理器启用追加到现有日志文件追加选项。

你在哪里建造你的FileHandler线,从

new FileHandler(fileName) 

改变

new FileHandler(fileName, true) 

这使得利用this constructor告诉的FileHandler追加到该文件。

+0

感谢@konsolas,已经添加行'新的FileHandler(文件名,真实)'。 但是,我仍然有同样的问题。 – kradwarrior

你正在创建一个新的FileHandler,它每次调用该方法增加了记录器实例。您有多个处理程序试图写在同一时间相同的文件名结束,第一个创建文件并锁定它,其余的都使用备用文件名。

+0

谢谢肖恩。尝试在生成日志之前创建该文件,但同样的事情仍在发生。 – kradwarrior

+0

您可能还需要启用附加功能(请参阅其他答案)。 –