Setting up java Logger for a specific package

夙愿已清 提交于 2019-12-06 03:56:29

问题


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.


回答1:


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");


来源:https://stackoverflow.com/questions/5291433/setting-up-java-logger-for-a-specific-package

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!