如何禁用SSHJ库默认日志或将SSHJ相关日志输出到单独文件
SSHJ日志控制实现方案
方案1:完全禁用SSHJ默认日志输出
SSHJ所有日志都归属在net.schmizz.sshj包路径下,直接对该包设置日志级别为OFF即可实现禁用:
- 硬编码配置(适合保留
BasicConfigurator.configure()的场景)
在BasicConfigurator.configure();执行后添加以下代码:import org.apache.log4j.Logger; import org.apache.log4j.Level; // 关闭SSHJ全量日志 Logger.getLogger("net.schmizz.sshj").setLevel(Level.OFF); - 配置文件配置(更推荐,可维护性更高)
删除代码中的BasicConfigurator.configure();,在项目类路径下新增log4j.properties文件,添加如下配置:
其他原有日志的输出逻辑可在该配置文件中统一管理。log4j.logger.net.schmizz.sshj=OFF
方案2:将SSHJ日志单独输出到指定文件
通过配置专属Appender实现SSHJ日志和其他业务日志隔离输出,同样在log4j.properties中添加配置即可:
# 根日志默认输出到控制台 log4j.rootLogger=INFO, CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # 配置SSHJ专属文件输出Appender log4j.appender.SSHJ_FILE=org.apache.log4j.RollingFileAppender # 自定义日志输出路径 log4j.appender.SSHJ_FILE.File=/your/custom/path/sshj.log log4j.appender.SSHJ_FILE.MaxFileSize=20MB log4j.appender.SSHJ_FILE.MaxBackupIndex=10 log4j.appender.SSHJ_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.SSHJ_FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # 绑定SSHJ包日志到专属Appender,additivity设为false避免日志同时输出到控制台 log4j.logger.net.schmizz.sshj=INFO, SSHJ_FILE log4j.additivity.net.schmizz.sshj=false
如果你的项目使用slf4j绑定了其他日志实现(如logback、log4j2),配置逻辑一致,仅需对net.schmizz.sshj包路径单独设置日志级别和输出规则即可。
内容的提问来源于stack exchange,提问作者vigneshwar reddy
相关产品推荐
相关产品推荐

