需要与 sshj 库相关的信息。日志记录如何工作?

Need information related to sshj library. How logging works?

我正在尝试使用 sftp 协议将文件从一台服务器传输到另一台服务器。所以,我正在尝试为此使用 sshj 库。现在,在传输文件之前,我正在执行一些活动,例如压缩和传输后解压缩。因此,我将此详细信息记录到 successLog,如果有错误则记录到 FailureLog。

这是我的 log4j 属性:-

# Define the root logger
log4j.rootLogger = DEBUG, toConsole

# Define the console appender
log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsoleAppender.layout.ConversionPattern=%d{HH:mm:ss} %5p [%t] - %c.%M - %m%n

# Define the file appender
log4j.appender.success=org.apache.log4j.FileAppender
log4j.appender.success.File=logs/success.log
log4j.appender.success.Append=false
log4j.appender.success.layout=org.apache.log4j.PatternLayout
log4j.appender.success.layout.conversionPattern=%d{HH:mm:ss} %5p [%t] - %c.%M - %m%n

# Define the file appender
log4j.appender.failure=org.apache.log4j.FileAppender
log4j.appender.failure.File=logs/failure.log
log4j.appender.failure.Append=false
log4j.appender.failure.layout=org.apache.log4j.PatternLayout
log4j.appender.failure.layout.conversionPattern=%d{HH:mm:ss} %5p [%t] - %c.%M - %m%n

log4j.category.successLogger=DEBUG, success
log4j.additivity.successLogger=true

log4j.category.failureLogger=WARN, failure
log4j.additivity.failureLogger=false

在 java 代码中,我将其用作 :-

static final Logger successLog = Logger.getLogger("successLogger");
    static final Logger failureLog = Logger.getLogger("failureLogger");

和例子failureLog.error("exception occured due to so an so reason",e);

现在我想将 sshj 库日志存储在某个名为 sftp.log 的文件中。我该怎么做?到目前为止,我是手动登录成功和失败日志,但 sshj 日志默认打印在控制台上,我想将其写入某个文件。

这是我将 SFTP 会话 FINE 级日志写入文件的示例:

private void enableFineLogging() {
    try {
        fileHandler = new FileHandler(
                "./logs/fine_sshj.log",
                10000000, 1000, true);
        fileHandler.setLevel(Level.FINER);
        fileHandler.setFormatter(new SimpleFormatter());

        final Logger app = Logger.getLogger("net.schmizz");
        app.setLevel(Level.FINER);
        app.addHandler(fileHandler);
        app.setUseParentHandlers(false);
        app.info(
                "########################################################################   "
                        + "START LOGGING NEW SSHJ SESSION   "
                        + "########################################################################");

    } catch (Exception e) {
        // Do something...
    }
}

虽然我不确定是否能够分离日志级别以便 successLogger 将只有成功案例...我认为还会有警告和严重级别的消息。