如何配置JSch记录器的级别?
是否可以通过XML配置Log4J?
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());
请注意,您可以使用所需的任何日志记录框架类(Log4j,Logback等)来代替MyLevel
and MyLogger
,
您可以在此处获得完整的示例:http :
//www.jcraft.com/jsch/examples/Logger.java.html
问题内容: 有谁知道任何全面的文档吗? 我正在寻找有关的文档。这就是我所能找到的全部。 有人知道更好的来源吗? 问题答案: 有一个很好的一篇关于它mishadoff的博客 在这里 。 该类虽然没有正式记录。
Log4J允许您通过命令行,例如“-dlog4j.logger.com.whatever.myclass=debug”,通过您希望应用程序中的特定记录器进行日志记录的级别。我在logback找不到任何类似的设施。根据FAQ,它似乎允许您做的只是通过使用变量替换来设置根记录器的级别。是我遗漏了什么,还是登录不支持这个?谢了。
我使用的是一个从jar实现Serializable的类,为了确保不会出现编译器相关的问题,我给了它一个serialVersionUID私有静态final long serialVersionUID=123L; 然后我重新创建了jar,但现在当我在新jar中使用类时,它给了我一个例外: invalidClassException:com.placeiq.piqhash.piqdeviceID;本地类
AMH可以设置伪静态吗?在哪里设置啊? AMH可以设置伪静态吗?在哪里设置啊?你可以具体告诉我怎么操作吗? 打开你的ThinkPHP框架项目的route/route.php文件。在哪里打开?
我使用AudioRecord类来记录通话过程中的语音。 我很高兴只录下拥有电话的人的声音(从麦克风)。在录音期间,我想做一些音频处理,但这是目前的主题。 Android有以下AudioSources选项: null 对于音频格式,我选择了AudioFormat.encoding_pcm_16bit,但它也有:-AudioFormat.encoding_default-AudioFormat.enc
我使用vertx 3.0与Spring引导。现在我试图配置记录器日志级别,使用下面的配置: JVM参数: 登录中。属性: JAVA类: 输出: 作为包com的日志级别。sensegrow是一个错误。为什么我要获取信息和警告级别日志。