Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么java.util.logging级别:FINE、FINER和FINEST不起作用?_Java_Logging_Java.util.logging - Fatal编程技术网

为什么java.util.logging级别:FINE、FINER和FINEST不起作用?

为什么java.util.logging级别:FINE、FINER和FINEST不起作用?,java,logging,java.util.logging,Java,Logging,Java.util.logging,我们目前正在使用java.util.logging添加日志记录。像许多其他线程建议的那样,我们使用属性文件将记录器和处理程序级别调整为:ALL。输出将显示以下日志级别的日志消息: CONFIG INFO 警告 严重 但不在以下日志级别记录消息: FINE FINER FINEST 这是我们的配置文件: #Level for the logger. .level= ALL #Controls the console handler java.util.logging.ConsoleHa

我们目前正在使用
java.util.logging
添加日志记录。像许多其他线程建议的那样,我们使用属性文件将
记录器
处理程序
级别调整为:
ALL
。输出将显示以下日志级别的日志消息:

  • CONFIG
  • INFO
  • 警告
  • 严重
但不在以下日志级别记录消息:

  • FINE
  • FINER
  • FINEST
这是我们的配置文件:

#Level for the logger. 
.level= ALL

#Controls the console handler
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = ALL

#Adjust this level to change which logging is output
ca.fcl.wam.util.Logging.level = ALL
添加的日志记录语句如下所示:

log.log(Level.FINEST, "Finest");
log.log(Level.FINER, "FINER");
log.log(Level.FINE, "FINE");
log.log(Level.CONFIG, "CONFIG");
log.log(Level.INFO, "INFO");
log.log(Level.WARNING, "WARNING");
log.log(Level.SEVERE, "SEVERE");
log.finest("Finest Log");
log.finer("Finer Log");
log.fine("Fine Log");
log.config("Config Log");
log.info("Info Log");
log.warning("Warning Log");
log.severe("Severe Log");
我们的日志最终为:

[2/24/16 14:16:41:691 CST] 0000005f Logging       C   CONFIG
[2/24/16 14:16:41:691 CST] 0000005f Logging       I   INFO
[2/24/16 14:16:41:691 CST] 0000005f Logging       W   WARNING
[2/24/16 14:16:41:691 CST] 0000005f Logging       E   SEVERE
[2/24/16 14:16:41:691 CST] 0000005f Logging       C   Config Log
[2/24/16 14:16:41:691 CST] 0000005f Logging       I   Info Log
[2/24/16 14:16:41:691 CST] 0000005f Logging       W   Warning Log
[2/24/16 14:16:41:691 CST] 0000005f Logging       E   Severe Log

除非将配置文件中的级别设置为:
ALL
FINE
FINE
FINER
FINEST
,否则更改配置文件中的级别将正常工作。仅在每种情况下。

包含代码,以输出在执行日志测试后所有记录器的设置

public class DebugLogging {

    private static final Logger log = Logger.getLogger("ca.fcl.wam.util.Logging");

    public static void main(String[] a) {
        log.log(Level.FINEST, "Finest");
        log.log(Level.FINER, "FINER");
        log.log(Level.FINE, "FINE");
        log.log(Level.CONFIG, "CONFIG");
        log.log(Level.INFO, "INFO");
        log.log(Level.WARNING, "WARNING");
        log.log(Level.SEVERE, "SEVERE");
        log.finest("Finest Log");
        log.finer("Finer Log");
        log.fine("Fine Log");
        log.config("Config Log");
        log.info("Info Log");
        log.warning("Warning Log");
        log.severe("Severe Log");
        printConfig();
    }

    private static void printConfig() {
        LogManager lm = LogManager.getLogManager();
        synchronized (lm) {
            Enumeration<String> e = lm.getLoggerNames();
            while (e.hasMoreElements()) {
                Logger l = lm.getLogger(e.nextElement());
                if (l != null) {
                    print(l, System.err);
                }
            }
        }
    }

    private static void print(Logger l, PrintStream ps) {
        String scn = l.getClass().getSimpleName();
        ps.append("scn=").append(scn).append(", n=").append(l.getName())
                .append(", l=").append(String.valueOf(l.getLevel()))
                .append(", fl=").println(l.getFilter());
        for (Handler h : l.getHandlers()) {
            ps.append("\t").append(scn).append("->")
                    .append(h.getClass().getName()).append(", h=")
                    .append(String.valueOf(h.getLevel())).append(", fl=")
                    .append(String.valueOf(h.getFilter()));
        }
    }
}
公共类调试日志{
私有静态最终记录器log=Logger.getLogger(“ca.fcl.wam.util.Logging”);
公共静态void main(字符串[]a){
log.log(Level.FINEST,“FINEST”);
log.log(Level.FINER,“FINER”);
log.log(Level.FINE,“FINE”);
log.log(Level.CONFIG,“CONFIG”);
log.log(Level.INFO,“INFO”);
log.log(Level.WARNING,“WARNING”);
log.log(严重级别,“严重”);
原木。最细原木(“最细原木”);
log.finer(“finer log”);
对数细(“细对数”);
log.config(“配置日志”);
log.info(“信息日志”);
日志。警告(“警告日志”);
对数严重(“严重对数”);
printConfig();
}
私有静态void printConfig(){
LogManager lm=LogManager.getLogManager();
已同步(lm){
枚举e=lm.getLoggerNames();
而(e.hasMoreElements()){
Logger l=lm.getLogger(e.nextElement());
如果(l!=null){
打印(l,系统错误);
}
}
}
}
专用静态无效打印(记录器l、打印流ps){
字符串scn=l.getClass().getSimpleName();
ps.append(“scn=).append(scn).append(,n=).append(l.getName())
.append(“,l=”).append(String.valueOf(l.getLevel()))
.append(“,fl=”).println(l.getFilter());
对于(处理程序h:l.getHandlers()){
ps.append(“\t”).append(scn).append(“->”)
.append(h.getClass().getName()).append(“,h=”)
.append(String.valueOf(h.getLevel()).append(,fl=“)
.append(String.valueOf(h.getFilter());
}
}
}

包含代码以输出日志测试执行后所有记录器的设置

public class DebugLogging {

    private static final Logger log = Logger.getLogger("ca.fcl.wam.util.Logging");

    public static void main(String[] a) {
        log.log(Level.FINEST, "Finest");
        log.log(Level.FINER, "FINER");
        log.log(Level.FINE, "FINE");
        log.log(Level.CONFIG, "CONFIG");
        log.log(Level.INFO, "INFO");
        log.log(Level.WARNING, "WARNING");
        log.log(Level.SEVERE, "SEVERE");
        log.finest("Finest Log");
        log.finer("Finer Log");
        log.fine("Fine Log");
        log.config("Config Log");
        log.info("Info Log");
        log.warning("Warning Log");
        log.severe("Severe Log");
        printConfig();
    }

    private static void printConfig() {
        LogManager lm = LogManager.getLogManager();
        synchronized (lm) {
            Enumeration<String> e = lm.getLoggerNames();
            while (e.hasMoreElements()) {
                Logger l = lm.getLogger(e.nextElement());
                if (l != null) {
                    print(l, System.err);
                }
            }
        }
    }

    private static void print(Logger l, PrintStream ps) {
        String scn = l.getClass().getSimpleName();
        ps.append("scn=").append(scn).append(", n=").append(l.getName())
                .append(", l=").append(String.valueOf(l.getLevel()))
                .append(", fl=").println(l.getFilter());
        for (Handler h : l.getHandlers()) {
            ps.append("\t").append(scn).append("->")
                    .append(h.getClass().getName()).append(", h=")
                    .append(String.valueOf(h.getLevel())).append(", fl=")
                    .append(String.valueOf(h.getFilter()));
        }
    }
}
公共类调试日志{
私有静态最终记录器log=Logger.getLogger(“ca.fcl.wam.util.Logging”);
公共静态void main(字符串[]a){
log.log(Level.FINEST,“FINEST”);
log.log(Level.FINER,“FINER”);
log.log(Level.FINE,“FINE”);
log.log(Level.CONFIG,“CONFIG”);
log.log(Level.INFO,“INFO”);
log.log(Level.WARNING,“WARNING”);
log.log(严重级别,“严重”);
原木。最细原木(“最细原木”);
log.finer(“finer log”);
对数细(“细对数”);
log.config(“配置日志”);
log.info(“信息日志”);
日志。警告(“警告日志”);
对数严重(“严重对数”);
printConfig();
}
私有静态void printConfig(){
LogManager lm=LogManager.getLogManager();
已同步(lm){
枚举e=lm.getLoggerNames();
而(e.hasMoreElements()){
Logger l=lm.getLogger(e.nextElement());
如果(l!=null){
打印(l,系统错误);
}
}
}
}
专用静态无效打印(记录器l、打印流ps){
字符串scn=l.getClass().getSimpleName();
ps.append(“scn=).append(scn).append(,n=).append(l.getName())
.append(“,l=”).append(String.valueOf(l.getLevel()))
.append(“,fl=”).println(l.getFilter());
对于(处理程序h:l.getHandlers()){
ps.append(“\t”).append(scn).append(“->”)
.append(h.getClass().getName()).append(“,h=”)
.append(String.valueOf(h.getLevel()).append(,fl=“)
.append(String.valueOf(h.getFilter());
}
}
}

如果这确实是您的整个配置文件,则您缺少设置处理程序的部分:

handlers = java.util.logging.ConsoleHandler
.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = FINE

适用于我。

如果这确实是您的整个配置文件,那么您缺少设置处理程序的部分:

handlers = java.util.logging.ConsoleHandler
.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = FINE

适合我。

我假设您的配置未被使用。您缺少将处理程序附加到记录器的行,因此如果正在使用配置,您将看不到任何输出。将所有设置为OFF,如果您获得输出,则您知道您的配置未被使用。您的属性文件中的以下设置是什么,为什么会出现:
ca.fcl.wam.util.Logging.level=ALL
?@jmehrens配置文件肯定正在加载。如果我将其设置为off not logs将显示,将其设置为info将仅显示info、warning和severe。Sean,这是为了设置单个记录器的级别而添加的,以防我们最终得到想要单独设置的倍数。我假设没有使用您的配置。您缺少将处理程序附加到记录器的行,因此如果正在使用配置,您将看不到任何输出。将所有设置为OFF,如果您获得输出,则您知道您的配置未被使用。您的属性文件中的以下设置是什么,为什么会出现:
ca.fcl.wam.util.Logging.level=ALL
?@jmehrens配置文件肯定正在加载。如果