Skip to content

Instantly share code, notes, and snippets.

@darmbrust
Created November 6, 2014 22:59
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save darmbrust/f5466dc7934087d0cbee to your computer and use it in GitHub Desktop.
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)
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:daniel.armbrust.list@gmail.com">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