如何为j2ssh maverick启用调试日志?

时间:2017-06-09 08:28:22

标签: java ssh log4j sftp j2ssh

最近我使用j2ssh-maverick-1.5.5.jar在我自己的java应用程序中实现sftp,但我在通过log4j.properties启用调试消息时遇到了问题。

它似乎无效log4j.logger.com.sshtools=DEBUG

我可以在sshtools限制中找到类似的主题:“如何为Maverick版本1.4.x启用调试日志”,但我没有使用maverick-legacy-client.jar

有人能告诉我如何使用j2ssh-maverick-1.5.5.jar显示调试日志消息吗?

2 个答案:

答案 0 :(得分:0)

J2SSH Maverick使用自己的日志记录界面Logger

但是如果您只想简单地记录到System.out,只需通过调用

来使用SimpleLogger
LoggerFactory.setInstance(new SimpleLogger(LoggerLevel.DEBUG));

答案 1 :(得分:0)

在 j2ssh-maverick-1.5.5 中,您需要创建一个实现 Logger 接口的新类。这是一个例子:

import com.sshtools.logging.Logger;
import com.sshtools.logging.LoggerLevel;
    
public class J2sshLogger implements Logger{
    LoggerLevel level;

    public J2sshLogger(LoggerLevel arg0) {
        level = arg0;
    }

    public boolean isLevelEnabled(LoggerLevel level) {
        return (this.level.ordinal() >= level.ordinal());
    }

    public void log(LoggerLevel level, Object source, String msg) {
        //here your log: example log.write(level, msg);
    }

    public void log(LoggerLevel level, Object source, String msg, Throwable t) {
        //here your log: example log.write(level, msg);
    }
}

当您创建 SSH 连接时,您需要将新的记录器类设置为 LoggerFactory,如下所示:

LoggerFactory.setInstance(new J2sshLogger(LoggerLevel.INFO));