为 FTP 协议启用 Apache Commons Net 中的日志记录 [英] 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
,都源自 SocketClient
,它有一个方法 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.
这篇关于为 FTP 协议启用 Apache Commons Net 中的日志记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!