Created
November 6, 2014 22:59
-
-
Save darmbrust/f5466dc7934087d0cbee to your computer and use it in GitHub Desktop.
A bit of example code that routes logging from Jsch to SLF4j (using Java 8)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.HashMap; | |
import java.util.function.BooleanSupplier; | |
import java.util.function.Consumer; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
import com.jcraft.jsch.JSch; | |
/** | |
* Demonstrates enabling and routing JSch (http://www.jcraft.com/jsch/) logging | |
* into SLF4J (http://www.slf4j.org/) logging using Java 8 | |
* | |
* @author <a href="mailto:[email protected]">Dan Armbrust</a> | |
*/ | |
public class DemoSnippit | |
{ | |
private static Logger log = LoggerFactory.getLogger(DemoSnippit.class); | |
public DemoSnippit() | |
{ | |
JSch.setLogger(new com.jcraft.jsch.Logger() | |
{ | |
private HashMap<Integer, Consumer<String>> logMap = new HashMap<>(); | |
private HashMap<Integer, BooleanSupplier> enabledMap = new HashMap<>(); | |
{ | |
logMap.put(com.jcraft.jsch.Logger.DEBUG, log::debug); | |
logMap.put(com.jcraft.jsch.Logger.ERROR, log::error); | |
logMap.put(com.jcraft.jsch.Logger.FATAL, log::error); | |
logMap.put(com.jcraft.jsch.Logger.INFO, log::info); | |
logMap.put(com.jcraft.jsch.Logger.WARN, log::warn); | |
enabledMap.put(com.jcraft.jsch.Logger.DEBUG, log::isDebugEnabled); | |
enabledMap.put(com.jcraft.jsch.Logger.ERROR, log::isErrorEnabled); | |
enabledMap.put(com.jcraft.jsch.Logger.FATAL, log::isErrorEnabled); | |
enabledMap.put(com.jcraft.jsch.Logger.INFO, log::isInfoEnabled); | |
enabledMap.put(com.jcraft.jsch.Logger.WARN, log::isWarnEnabled); | |
} | |
@Override | |
public void log(int level, String message) | |
{ | |
logMap.get(level).accept(message); | |
} | |
@Override | |
public boolean isEnabled(int level) | |
{ | |
return enabledMap.get(level).getAsBoolean(); | |
} | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment