首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用FileHandler输出长行?

如何用FileHandler输出长行?
EN

Stack Overflow用户
提问于 2021-12-08 19:40:05
回答 1查看 112关注 0票数 0

对于不太长的行,FileHandler可以正常工作。但是,如果行很长,则不会向日志文件写入任何内容。例如,下面是试图编写一行50k字符的代码:

代码语言:javascript
复制
public class LoggerExample {

    private static final Logger LOGGER = Logger.getLogger(LoggerExample.class.getName());
    public static void main(String[] args) throws SecurityException, IOException {
        FileHandler fileHandler = new FileHandler();
        fileHandler.setFormatter(new SimpleFormatter());
        LOGGER.addHandler(fileHandler);

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 5000; i++) {
            sb.append("aaaaaaaaaa");
        }
        LOGGER.info(sb.toString());
    }
}

有办法让这件事成功吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-08 20:39:07

FileHandler有一个限制,如其文档中所描述的那样

.limit指定了向任何一个文件写入(以字节为单位)的大致最大值。如果这是零,那么就没有限制了。(默认为无限制)。

它将默认值声明为“无限制”,但限制是由在使用的JRE/JDK安装目录中找到的logging.properties文件设置的。在我的系统中,Java 8或Java 17,这个文件包含行

代码语言:javascript
复制
java.util.logging.FileHandler.limit = 50000

将限制设置为50000。

可能的解决办法:

  • FileHandler的构造函数中设置限制,例如:
代码语言:javascript
复制
new FileHandler("%h/java%u.log", 0, 1);  // using the default file pattern
  • 具有具有调整限制的不同配置文件(logging.properties),由java.util.logging.config.file系统属性指定。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70280813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档