Я недавно установил Java 1.14 JDK на мою Linux машину и начал изучать 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
. Почему мое приложение не пишет в эти файлы?