在FTP协议的Apache Commons Net中启用登录

时间:2018-11-22 07:43:28

标签: java logging ftp apache-commons-net

Apache Commons Net库似乎没有将任何内容发送到任何“记录器”。

我可以通过某种方式从(FTP)会话中获取日志文件以进行调试吗?例如原始的FTP命令和来自服务器的响应,如下所示:

220 Welcome
USER *******
331 Password required for ...
PASS *******
230 Logged on
TYPE I
200 Type set to I
QUIT
221 Goodbye

1 个答案:

答案 0 :(得分:1)

Apache Commons Net中的所有协议实现,包括FTPClient,都源自具有方法SocketClientaddProtocolCommandListener。您可以向其传递ProtocolCommandListener的实现以实现日志记录。

有一个现成的实现PrintCommandListener,可将协议日志打印到提供的PrintStream

使用这样的代码:

ftpClient.addProtocolCommandListener(
    new PrintCommandListener(
        new PrintWriter(new OutputStreamWriter(System.out, "UTF-8")), true));

...,您将准确获得所需的输出。