【问题标题】:How to enable debug logs for j2ssh maverick?如何为 j2ssh maverick 启用调试日志?
【发布时间】:2017-06-09 08:28:21
【问题描述】:

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

似乎在log4j.logger.com.sshtools=DEBUG上不起作用

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

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

【问题讨论】:

    标签: java ssh log4j sftp j2ssh


    【解决方案1】:

    J2SSH Maverick 使用自己的日志接口Logger

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

    LoggerFactory.setInstance(new SimpleLogger(LoggerLevel.DEBUG));
    

    【讨论】:

      【解决方案2】:

      在 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));
      

      【讨论】:

        猜你喜欢
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 2016-08-12
        • 2022-01-01
        • 1970-01-01
        • 2014-02-28
        • 2014-11-02
        • 2022-07-18
        相关资源
        最近更新 更多