プロパティ ファイルを使用して Java ロギングを実装しました。そこでは、ファイル ハンドラーとカスタム ハンドラーを備えたカスタム ロガーを使用します。私の問題は、カスタム ハンドラーのログ レベルが機能していないことです。これは私の構成です:
studium.logger.useParentHandlers = false
studium.logger.ProjectLogger.handlers = java.util.logging.FileHandler, studium.logger.WindowHandler
studium.logger.ProjectLogger.level = FINEST
studium.logger.WindowHandler.formatter = studium.logger.formatter.TextAreaFormatter
studium.logger.WindowHandler.level = INFO
java.util.logging.FileHandler.level = FINEST
java.util.logging.FileHandler.formatter = studium.logger.formatter.FileFormatter
java.util.logging.FileHandler.append = true
java.util.logging.FileHandler.pattern = log.txt
ファイルハンドラは正常に動作しています。ログファイルにうまく記録されています。しかし、私の WindowHandler を使用すると、Info と Warning だけでなく、ログレベルが Fine のすべてのログを取得できます
ここに私の WindowHandler があります:
public class WindowHandler extends StreamHandler {
private JTextArea textArea;
public WindowHandler() {
super();
this.textArea = MainFrame.out;
}
@Override
public void publish(LogRecord record) {
textArea.append(getFormatter().format(record));
}
public JTextArea getTextArea() {
return textArea;
}
public void setTextArea(JTextArea textArea) {
this.textArea = textArea;
}
}
そして、ここに私のtextAreaの出力があります:
FINE Test log level FINE
WARNING Test log level WARNING
私は何が欠けていますか?