Warum Logging "1 MAIN INFO" funktioniert nicht, wenn ich die gesamte Protokollierung von Core-Bibliotheken durch .level = OFF deaktiviert. Aber für mein Paket habe ich alle Logging aktiviert. Warum funktioniert es nur, nachdem ich den zweiten Logger installiert habe?java.util.logging funktioniert nicht richtig "Bug oder Feature"
LibClass libClass = new LibClass();
package com.mycompany;
public class Main {
private final static Logger logger = Logger.getLogger(Main.class.getName());
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("log.prop")
LogManager.getLogManager().readConfiguration(fis);
logger.info("1 MAIN INFO");
LibClass libClass = new LibClass();
libClass.doWork();
logger.info("3 MAIN INFO");
}
}
package com.mycompany;
public class LibClass {
private final static Logger logger = Logger.getLogger(LibClass.class.getName());
public void doWork() {
System.out.println("doWork");
logger.info("2 doWork INFO");
}}
handlers= java.util.logging.ConsoleHandler
.level = OFF
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
com.mycompany.level = ALL
Ausgabe
doWork
[Пт июл 01 22:37:29 EEST 2016] INFO: com.mycompany.LibClass doWork - 2 doWork INFO
[Пт июл 01 22:37:29 EEST 2016] INFO: com.mycompany.Main main - 3 MAIN INFO
was aus sind Ihre bekommen, und was hast du erwartet. Zeige es (Frage bearbeiten, nicht im Kommentar hinzufügen). – Andreas
Frage hat einen Link zu Screenshot mit dem Namen "Ausgabe. Und der Code ist sehr einfach. Was ich will, schrieb ich in der ersten Zeile" 1 MAIN INFO "muss protokolliert werden, aber nicht. – user6539479
Die logging.properties können nur Logger konfigurieren, die angefordert werden namentlich im code.Zur Zeit haben Sie 2 Knoten, die die 'root <-com.mycompany.Main' und' root <-com.mycompany.LibClass' sind. Deklarieren Sie und stecken Sie eine 'com.mycompany' Logger und das wird einfügen ein gemeinsames Elternteil für beide Protokollierer – jmehrens