JSch记录器 - 我在哪里可以配置级别 [英] JSch logger - where can I configure the level

查看:125
本文介绍了JSch记录器 - 我在哪里可以配置级别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I configure the level of JSch logger?

是否可以通过XML配置Log4J?

Is it like Log4J configurable via XML?

推荐答案

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

JSch doesn't seem to use any known logging framework (I use JSch v0.1.49, but the last version is v0.1.51), or any XML configuration file. So here is what I did:

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:

Then before using JSch:

JSch.setLogger(new JSCHLogger());

请注意,而不是 MyLevel MyLogger ,你可以使用你想要的任何日志框架类(Log4j,Logback,...)

Note that instead of MyLevel and MyLogger, you can use any logging framework classes you want (Log4j, Logback, ...)

你可以得到一个完整示例: http://www.jcraft.com/jsch/examples/Logger.java.html

You can get a complete example here: http://www.jcraft.com/jsch/examples/Logger.java.html

这篇关于JSch记录器 - 我在哪里可以配置级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆