协议启用日志记录

协议启用日志记录

本文介绍了在 Apache Commons Net 中为 FTP 协议启用日志记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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.

这篇关于在 Apache Commons Net 中为 FTP 协议启用日志记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 18:15