JSch读取本地日志文件

时间:2016-04-19 10:46:53

标签: jsch

我正在开发一个工具,它使用JSch库从远程机器读取日志文件以进行日志解析和其他一些功能。下面给出了读取日志文件的代码。

    JSch jsch=new JSch();
    Session session=jsch.getSession(user, host, 22);
    session.setPassword(password);
    session.setConfig("StrictHostKeyChecking", "no");
    session.connect();

    ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
    sftp.connect();

    InputStream stream = null;
    try {
        //this will be changed to execute on a regular time interval
        while (true) {
            stream = sftp.get(rfile);
            read(stream);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    } finally {
        stream.close();
        sftp.disconnect();
        session.disconnect();
    }

但是,该工具有可能部署到生成日志的计算机上。所以,我的问题是,

1)我怀疑使用 sftp.get()的性能问题,因为日志文件将以固定间隔(例如5分钟)读取。有什么建议可以提高绩效吗?

2)JSch是否具有相同的网络开销,用于从本地机器读取类似于远程机器的文件。

3)如果是,如果日志正在从本地计算机读取,是否有任何方法可以提高性能。

在阅读日志文件之前,我可以检查目标和主机的IP地址。如果两者相同,我可以直接读取日志。但是,还有更好的选择吗?

谢谢, NKS

0 个答案:

没有答案