gpt4 book ai didi

java - 如何使用 Ganymed SSH-2 启用完整日志记录

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:52 24 4
gpt4 key购买 nike

我正在开发一个使用 Ganymed SSH-2 执行 ssh 命令的 java 应用程序

我需要为每个命令序列生成完整的日志,例如zip 文件传输、解压缩、压缩等。

搜索了 ch.ethz.ssh2.log.Logger 的源代码后,我可以将 boolean 值 public static volatile boolean enabled = false; 设置为 true

这提供了以下输出

Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: kex_algo=diffie-hellman-group-exchange-sha1
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: server_host_key_algo=ssh-rsa
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: enc_algo_client_to_server=aes128-ctr
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: enc_algo_server_to_client=aes128-ctr
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: mac_algo_client_to_server=hmac-sha1-96
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: mac_algo_server_to_client=hmac-sha1-96
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: comp_algo_client_to_server=none
Mar 05, 2015 10:17:25 AM ch.ethz.ssh2.log.Logger info
INFO: comp_algo_server_to_client=none

但是我还需要所有级别的日志记录来执行命令,包括文件传输。

如何配置记录器以生成所有可用信息?

最佳答案

回答有点晚,但也许有人仍然需要此信息。

我设法让调试语句像这样可见:

    public void enableFineLogging() {
try {
ch.ethz.ssh2.log.Logger.enabled = true;
String name = "myDynamicFileNamePart";

FileHandler fileHandler = new FileHandler("./logs/"
+ name + "_SFTP.log", 10000000, 1000, true);
fileHandler.setLevel(Level.FINE);
fileHandler.setFormatter(new SimpleFormatter());

final Logger app = Logger.getLogger("ch.ethz");
app.setLevel(Level.FINE);
app.addHandler(fileHandler);
app.setUseParentHandlers(false);

} catch (Exception e) {
// Catchalog
}
}

结果在文件中:

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter info

INFO: Client identity string: SSH-2.0-SSHJ_0.19.1

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter info

INFO: Server identity string: SSH-2.0-OpenSSH_6.6.1

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter debug

FINE: Setting <> to null

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter debug

FINE: Sending SSH_MSG_KEXINIT

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter debug

FINE: Setting <> to SOME

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter debug

FINE: Awaiting <>

marras 15, 2017 12:16:56 IP. org.slf4j.impl.JCLLoggerAdapter debug

FINE: Received SSH_MSG_KEXINIT

如果您希望登录控制台,请使用 ConsoleHandler。退出日志记录后,还需要考虑使用 fileHandler.close() 关闭日志文件。

通过从 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL 中进行选择来调整日志级别

关于java - 如何使用 Ganymed SSH-2 启用完整日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com