Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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应用程序没有登录到默认的java0.log文件java.util.logging?_Java_Logging - Fatal编程技术网

为什么我的java应用程序没有登录到默认的java0.log文件java.util.logging?

为什么我的java应用程序没有登录到默认的java0.log文件java.util.logging?,java,logging,Java,Logging,我最近在我的Linux机器上安装了Java1.14JDK并开始学习Java,现在我一直在试图弄清楚为什么这段代码没有写入默认的日志文件 package foo; import java.util.logging.Level; import java.util.logging.Logger; public class Main { public static void main(String[] args) { Logger logger = Logger.getL

我最近在我的Linux机器上安装了Java1.14JDK并开始学习Java,现在我一直在试图弄清楚为什么这段代码没有写入默认的日志文件

package foo;

import java.util.logging.Level;
import java.util.logging.Logger;

public class Main {

    public static void main(String[] args) {

        Logger logger = Logger.getLogger("test");

        logger.log(Level.INFO, "testinggggg info");
        logger.log(Level.SEVERE, "testinggggg severe");
        logger.log(Level.WARNING, "testinggggg warning");
        logger.log(Level.FINE, "testinggggg fine");
    }
}
此代码打印到控制台

INFO: testinggggg info
Apr 01, 2020 2:45:57 AM foo.Main main
SEVERE: testinggggg severe
Apr 01, 2020 2:45:57 AM foo.Main main
WARNING: testinggggg warning
这是我的
/usr/java/jdk-14/conf/logging.properties
文件的内容

# I have omitted all comments
handlers= java.util.logging.ConsoleHandler

.level= INFO

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.maxLocks = 100
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
当我检查大多数系统属性时,我会看到
NULL
,例如,在我的应用程序打印中执行这些行
NULL

System.out.println(System.getProperty("java.util.logging.FileHandler.pattern"));
System.out.println(System.getProperty("java.util.logging.FileHandler.limit"));
System.out.println(Main.class.getClassLoader().getResource("logging.properties"));
我的
$HOME
目录中没有任何名为
java0.log
java1.log
的文件。为什么我的应用程序没有写入这些文件

finaaaaaaaaaaly

我改变了这个

handlers= java.util.logging.ConsoleHandler
对此

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
在我的
/usr/java/jdk-14/conf/logging.properties
文件中,现在我在我的Linux
$HOME
目录下有了这些日志


顺便说一句,更改
logging.properties
并保存它,使更改立即生效,而无需重新启动我的计算机或java或其他东西。

您不应该更改系统范围的日志配置。虽然我不认为会因此发生什么不好的事情,但是您应该使用属性
java.util.logging.config.file
(或者
java.util.logging.config.class
进行编程配置)。此外,许多人更喜欢log4j或logback作为客观上更好的日志库,但对于简单的需求,标准java.util.logging应该足够了。@vbezhenar谢谢,是的,每个应用程序使用配置文件更安全,我只是想了解java中的日志工作原理,工作后,我再次将
logging.properties
文件重置为其原始值。