首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置特定FileHandler的属性

如何配置特定FileHandler的属性
EN

Stack Overflow用户
提问于 2012-05-10 10:39:15
回答 3查看 3.6K关注 0票数 6

Java日志配置文件允许我定义命名记录器的属性。

代码语言:javascript
复制
name.heikoseeberger.heikotron.level = FINE
name.heikoseeberger.heikotron.handlers = java.util.logging.FileHandler

到现在为止还好。现在,我想将配置为特定的 FileHandler,例如使用特定的输出文件。不幸的是,我只知道如何配置“全局”FileHandler,它已经存在于配置文件中:

代码语言:javascript
复制
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

我不想配置这个,但是与我的自定义Logger相关联的实例。我已经尝试了以下几种方法,但都没有成功:

代码语言:javascript
复制
name.heikoseeberger.heikotron.java.util.logging.FileHandler.pattern = %h/heikotron.log
name.heikoseeberger.heikotron.java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

是否有可能设置特定FileHandler实例的属性?如有,应如何识别/命名?

EN

回答 3

Stack Overflow用户

发布于 2013-08-01 15:51:38

这是通过使用在config的顶级类文档中描述的LogManger选项来完成的。使用公共构造函数创建一个公共命名类,并调用配置处理程序所需的所有java调用。然后,在日志属性中,指示LogManager加载您创建的类以配置处理程序。否则,可以对文件处理程序进行子类,该处理程序将创建要配置的自定义命名空间。

票数 1
EN

Stack Overflow用户

发布于 2012-05-11 04:37:14

我认为是不可能的。如果您查看FileHandler的源代码,您将很快确定它使用字符串"java.util.logging.FileHandler.pattern“来确定用于日志记录的文件的模式。

代码语言:javascript
复制
private void configure() {
        LogManager manager = LogManager.getLogManager();

        String cname = getClass().getName();

        pattern = manager.getStringProperty(cname + ".pattern", "%h/java%u.log");
        limit = manager.getIntProperty(cname + ".limit", 0);
        //...
    }

因此,您要放入文件中的配置甚至没有被Handler考虑。

在我看来,处理程序似乎不知道任何特定的记录器(即name.heikoseeberger.heikotron)的存在,他们只是知道如何发布给定的LogRecord。

据我所见,特定记录器的处理程序是由LogManager创建的,通过反射调用它们的默认构造函数,因此,当创建给定的处理程序时,它不知道请求了哪个特定的记录器,这就是为什么它们的所有属性都是通过自己的类名而不是通过记录器的名称来设置的。

票数 0
EN

Stack Overflow用户

发布于 2012-05-28 10:42:14

如果我理解得对,那么您正在尝试使用java.util.logging包编写不同的日志文件。如果不扩展它,就不能开箱即用。

如果不能切换到另一个日志框架(如Logback ),请检查java logging.properties:如何登录到两个不同的文件的答案,看看它是否适合您的需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10532291

复制
相关文章

相似问题

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