【问题标题】:Java.util.logger Keeps writing to a new log fileJava.util.logger 不断写入新的日志文件
【发布时间】:2014-10-23 16:15:30
【问题描述】:

我遇到了这个问题,我的记录器不断写入新文件

    Logger logger = Logger.getLogger("NewLogger");
    FileHandler fh;
    //create log file string 
    Date date = new Date(); 
    String yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd").format(date);
    String logFileName = "retrieveproductstracking_" + yyyyMMdd; 
    fh = new FileHandler("./" + logFileName + ".log");
    logger.addHandler(fh);
    SimpleFormatter formatter = new SimpleFormatter();
    fh.setFormatter(formatter);

    logger.setUseParentHandlers(false);
    logger.info(request.getRemoteAddr() + ", " + url + ", " + "timestamp" ); 

此代码正在被调用的 JSP 中使用,并且记录器会记录 URL、IP。问题是记录器每次都会写入一个新文件,但不仅如此......它还会写入之前的所有文件。

不完全是我对轮换日志的想法。

查看图片:http://puu.sh/cnu39/8b814e9f3f.png http://puu.sh/cnvKw/8c0e5dce11.png

【问题讨论】:

  • 您是否在 XML 或属性文件中配置了任何内容?
  • 没有。除了 Tomcat 的东西。
  • 按要求添加答案!

标签: java jsp logging


【解决方案1】:

完成后,您需要使用fh.close() 关闭文件处理程序。否则,您将文件锁定。这就是为什么您的图像显示有这么多已打开的锁定文件!

【讨论】:

    【解决方案2】:

    指定第二个参数追加到现有文件。(以追加模式打开文件)

     fh = new FileHandler("logFileName.log",true); // true specify append mode
    

    【讨论】:

    • 试过了,结果还是一样
    • 这是因为每次您都在更改文件名。
    • 你能扩展一下吗?文件名相同,但它会自动创建一个新文件并在其末尾附加一个数字。
    • 因为文件名正在改变,所以每次都会创建新文件
    • 但是@user3724053 说所有的旧文件也都被写入了!
    猜你喜欢
    • 2019-07-15
    • 2023-03-31
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    相关资源
    最近更新 更多