java.util.loggingを使用してロガーを設定しています。 fh = new FileHandler(file.getAbsolutePath()); logger.addHandler(fh); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); logger.setLevel(Level.ALL);
ロガーが動作します以下のJSchコードスニペットの後に、コンソールとファイルでうまくいきます。 `Channel channel = session.openChannel(" exec ");私はcommand.Howを実行していたときにハンドラが変更されていると思いますlogger(java.util.logging)は、出力をファイルに出力しても突然出力を停止します。
((ChannelExec) channel).setCommand(cmd1);
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
logger.info("creating tar ,executing command :"+cmd1);
channel.connect();
while (true) {
if (channel.isClosed()) {
System.out.println(logger.getHandlers());
// doesn't log afterwards
logger.info("exit-status: " + channel.getExitStatus());
if (channel.getExitStatus() == 0)
logger.info("tar file with " + tarFileName
+ "has been created successfully at " + path);
break;
}
try {
Thread.sleep(1000);
} catch (Exception ee) {
}
}`
は、私はそれが同様にコンソールに印刷を開始するようにハンドラをリセットすることができます。あなたが変更する必要が
すべてのロガーを['private static final'として宣言しているので、ガベージコレクションされていませんか?](http://stackoverflow.com/questions/22689831/log-file-not-being-updated-after-数秒間使用中のロガーとファイルハンドラー) – jmehrens
はい、ロガーはプライベートスタティックで、次のように定義されています。 – Skull
プライベートスタティックロガーロガー; – Skull