java - JSch 记录器 - 我可以在哪里配置级别

标签 java logging log4j jsch

如何配置 JSch 记录器的级别?

它像 Log4J 一样可以通过 XML 配置吗?

最佳答案

JSch 似乎没有使用任何已知的日志记录框架(我使用 JSch v0.1.49,但最新版本是 v0.1.51),或任何 XML 配置文件。所以这就是我所做的:

private class JSCHLogger implements com.jcraft.jsch.Logger {
    private Map<Integer, MyLevel> levels = new HashMap<Integer, MyLevel>();

    private final MyLogger LOGGER;


    public JSCHLogger() {
        // Mapping between JSch levels and our own levels
        levels.put(DEBUG, MyLevel.FINE);
        levels.put(INFO, MyLevel.INFO);
        levels.put(WARN, MyLevel.WARNING);
        levels.put(ERROR, MyLevel.SEVERE);
        levels.put(FATAL, MyLevel.SEVERE);

        LOGGER = MyLogger.getLogger(...); // Anything you want here, depending on your logging framework
    }

    @Override
    public boolean isEnabled(int pLevel) {
        return true; // here, all levels enabled 
    }

    @Override
    public void log(int pLevel, String pMessage) {
        MyLevel level = levels.get(pLevel);
        if (level == null) {
            level = MyLevel.SEVERE;
        }
        LOGGER.log(level, pMessage); // logging-framework dependent...
    }
}

然后在使用 JSch 之前:

JSch.setLogger(new JSCHLogger());

请注意,除了 MyLevelMyLogger 之外,您还可以使用任何您想要的日志框架类(Log4j、Logback 等)

你可以在这里得到一个完整的例子:http://www.jcraft.com/jsch/examples/Logger.java.html

关于java - JSch 记录器 - 我可以在哪里配置级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26826894/

相关文章:

java - 使用集合加载 DTO

java - Android 蓝牙第一次连接失败

java - 如何在 log4j2 中配置 null appender

java - Log4j:如何为 Logger 使用自定义名称?

java - 信号量类中的公平设置

java - 将数组结果存入数组

logging - 如何将 npgsql 日志输出重定向到 log4net 记录器?

logging - Symfony2 日志中由 "OPTIONS"http 请求引起的 404 错误

unit-testing - 使用 ClientHttpRequestInterceptor 对 Rest 客户端进行单元测试

java - 如何在java中使用Log4j获取记录器信息