Java上传日志至sftp服务器

本文介绍了一个Java项目中通过引入SFTP库并设置定时任务,实现日志定时上传到SFTP服务器的过程。在实现过程中,作者遇到了loadLogService为null的坑,并在Service层和工具类中进行了相应处理。最后,通过beas-task.xml配置定时任务执行时间和检查上传效果。
摘要由CSDN通过智能技术生成

本文是本人做项目中遇到的问题,其中有一些坑。欢迎查看与转载:
1、引入SFTP jar包

	<dependency>  
	      <groupId>com.jcraft</groupId>  
	      <artifactId>jsch</artifactId>  
	      <version>0.1.53</version>  
	</dependency> 

2、写定时器类,定时上传至sftp服务器

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.jcraft.jsch.SftpException;
	@Component
public class FtpUploadLogTask extends AbstractBaseTask {

Logger logger = LoggerFactory.getLogger(FtpUploadLogTask.class);

private static final ResourceBundle bundle = java.util.ResourceBundle.getBundle("config");

private String ftpIp = bundle.getString("ftpIp");

private String ftpUser = bundle.getString("ftpUser");

private int ftpPort = Integer.parseInt(bundle.getString("ftpPort"));

private String ftpPwd = bundle.getString("ftpPwd");

private String ftpRemotePath = bundle.getString("ftpRemotePath");

private String localAddress =  bundle.getString("localAddress");

private LoadLogService loadLogService;


@SuppressWarnings("unused")
private Map<String, Object> map;

FtpUtils ftpUtils = new FtpUtils();
SFtpUtils sfTpUtils = new SFtpUtils();

@Override
public void init() {
	
}

@Override
public void work() {
	logger.info("********上传登陆日志文件定时任务开始********");
	try {
		uploadTxtToFtp();
	} catch (SftpException e) {
		logger.error("********上传登陆日志文件定时任务失败:{}********", e);
	}
	logger.info("********上传登陆日志文件定时任务结束********");
}  

public void uploadTxtToFtp() throws SftpException {
	LogInfo logInfo = new LogInfo(this, Thread.currentThread().getStackTrace()[1].getMethodName());
	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
	Map<String, Object> result = new HashMap<>();
	loadLogService = (LoadLogSer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值