首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java日志集FileHandler全局

Java日志集FileHandler全局
EN

Stack Overflow用户
提问于 2016-10-21 12:21:21
回答 1查看 416关注 0票数 0

我想用JUL记录所有内容,并设置一个FileHandler来将所有内容写入日志文件,但是它只记录与FileHandler相同的类中的内容。如何不使用配置文件设置FileHandler全局?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-21 13:08:43

您可以遍历Logger的父级,删除查找的任何其他处理程序并调用logger.setUserParentHandlers(true),直到logger.getParent()返回null为止。这表明您已经找到了根Logger实例,您在其上调用了logger.addHandler(myOwnHandler)。您还可以调用logger.setLevel(.)在每个记录器上,以确保您的处理程序看到所有日志记录活动。下面是示例代码:

代码语言:javascript
复制
private static final Logger LOGGER = Logger.getLogger(MyMainClass.class.getName());

static {
    Logger logger = LOGGER.getParent();
    while(logger != null) {
        Handler[] handlers = logger.getHandlers();
        if(handlers != null) {
            for(Handler handler : handlers) {
                logger.removeHandler(handler);
            }
        }

        if(logger.getParent() == null) {
            logger.addHandler(SystemErrHandler.newInstance());
        }
        else {
            logger.setUseParentHandlers(true);
        }

        if(logger.getName().startsWith("my.sample.package")) {
            logger.setLevel(Level.ALL);
        }
        logger = logger.getParent();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40176561

复制
相关文章

相似问题

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