私は以下のコードを持っていて、を使用してログファイルを作成していますjava.util.logging.FileHandler
.
このシナリオでは、finally ブロックのリソースを手動で閉じる必要があります。
try {
fh = new FileHandler("Test.log");
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fh!=null) { fh.close() };
}
このコードは機能します。Autocloseable
さて、インターフェースを実装するかもしれないと思いました。そこで、リソースが自動的に閉じられるようにtry-with-resources
forを使用することにしました (リソースを閉じる手動のジョブを削除するため)。FileHandler
私が試したコードは以下のとおりです。
try(fh = new FileHandler("Test.log")) {
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
}
しかし、このコードは機能しません。
次のようなエラーが表示されます。
The resource type FileHandler does not implement java.lang.AutoCloseable'
可能であれば、try-with-resources を使用してファイル ハンドラーを自動的に閉じる方法は?
手動で閉じる必要がありますか? または、私が取ることができる他のアプローチがあります。