为特定包设置 java Logger

发布于 2024-10-21 21:12:37 字数 1167 浏览 5 评论 0原文

有人可以向我解释一下如何为具体包中的各种类设置 java Logger 吗?

例如: 如果我得到这个并设置它,

Logger logger = Logger.getLogger("com.google.api.client.*");
        logger.setLevel(Level.CONFIG);
        logger.addHandler(new Handler() {

            @Override
            public void close() throws SecurityException {
            }

            @Override
            public void flush() {
            }

            @Override
            public void publish(LogRecord record) {
                // default ConsoleHandler will take care of >= INFO
                if (record.getLevel().intValue() < Level.INFO.intValue()) {
                    System.out.println(record.getMessage());
                }
            }
        });

存在类似

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);

则在 HttpTransport< 的库中 的条件/code> 是 com.google.api.client.* 的一部分

,但问题是,这

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 

false ...就像如果获得了不同的记录器

还应该如何我为同一个包中的所有类设置它? HttpTransport 等具体类的记录器是否有条件。

could anybody explain to me, how to set up java Logger for various classes from a concrete package ?

for example:
if I get this one and set it up

Logger logger = Logger.getLogger("com.google.api.client.*");
        logger.setLevel(Level.CONFIG);
        logger.addHandler(new Handler() {

            @Override
            public void close() throws SecurityException {
            }

            @Override
            public void flush() {
            }

            @Override
            public void publish(LogRecord record) {
                // default ConsoleHandler will take care of >= INFO
                if (record.getLevel().intValue() < Level.INFO.intValue()) {
                    System.out.println(record.getMessage());
                }
            }
        });

there are conditions like this

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);

in the library where HttpTransport is part of com.google.api.client.*

But the problem is, that

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 

is false ... like if a different logger was obtained

How else should I set it for all classes from the same package? if there are conditions for loggers for concrete classes like HttpTransport.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请止步禁区 2024-10-28 21:12:37

您不希望在包字符串中包含 .*。
更改

Logger logger = Logger.getLogger("com.google.api.client.*");

Logger logger = Logger.getLogger("com.google.api.client");

You do not want the .* in your package string.
Change

Logger logger = Logger.getLogger("com.google.api.client.*");

to

Logger logger = Logger.getLogger("com.google.api.client");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文