在Apache Commons Net中启用FTP协议登录 [英] Enable logging in Apache Commons Net for FTP protocol
问题描述
Apache Commons Net库似乎没有将任何内容发送到任何记录器".
Apache Commons Net library does not seem to send anything to any "logger".
我可以通过某种方式从(FTP)会话中获取日志文件以进行调试吗?例如原始的FTP命令和来自服务器的响应,如下所示:
Can I somehow obtain a log file from an (FTP) session, for debugging purposes? For example raw FTP commands and responses from the server, like this:
220 Welcome
USER *******
331 Password required for ...
PASS *******
230 Logged on
TYPE I
200 Type set to I
QUIT
221 Goodbye
推荐答案
Apache Commons Net中的所有协议实现,包括FTPClient
,均源自 addProtocolCommandListener
.您可以通过 ProtocolCommandListener
来实现日志记录.
All protocol implementations in Apache Commons Net, including FTPClient
, derive from SocketClient
, which has a method addProtocolCommandListener
. You can pass it an implementation of ProtocolCommandListener
to implement logging.
有一个现成的实现 PrintCommandListener
,它将协议日志打印到提供的PrintStream
.
使用这样的代码:
ftpClient.addProtocolCommandListener(
new PrintCommandListener(
new PrintWriter(new OutputStreamWriter(System.out, "UTF-8")), true));
...,您将准确获得所需的输出.
..., you will get exactly the output that you have asked for.
这篇关于在Apache Commons Net中启用FTP协议登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!