如何配置 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());
请注意,除了 MyLevel
和 MyLogger
之外,您还可以使用任何您想要的日志框架类(Log4j、Logback 等)
你可以在这里得到一个完整的例子:http://www.jcraft.com/jsch/examples/Logger.java.html
关于java - JSch 记录器 - 我可以在哪里配置级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26826894/