JAVA在页面查看或下载服务器上的日志
1.配置
FileUtils类所需jar包的maven地址
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
2.代码
参数为日志文件的相对路径
package com.example.demo.io; import org.apache.commons.io.FileUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URLEncoder; /**
* @author Sue
* @create 2019-05-08 10:03
**/
@Controller
public class LogUtil {
/**
* 读取txt文件的内容
*
* @param file 想要读取的文件对象
* @return 返回文件内容
*/
public static String txt2String(File file) {
StringBuilder result = new StringBuilder();
try {
//构造一个BufferedReader类来读取文件
BufferedReader br = new BufferedReader(new FileReader(file));
String s = null;
//使用readLine方法,一次读一行
while ((s = br.readLine()) != null) {
result.append(System.lineSeparator() + s);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return result.toString();
} @GetMapping("/getLog")
public void main(HttpServletRequest request, HttpServletResponse response,String theFileName) {
String property = System.getProperty("user.dir");
String absolutePath = property + File.separator + theFileName;
File file = new File(absolutePath); // File file = new File("D:\\logback.2019-04-29.log");
System.out.println(txt2String(file) + ">");
try {
response.getWriter().write(txt2String(file));
} catch (IOException e) {
e.printStackTrace();
}
} @GetMapping("/download")
public ResponseEntity<byte[]> downLoad(HttpServletRequest request,String theFileName) throws Exception, FileNotFoundException {
HttpHeaders headers = new HttpHeaders();
String property = System.getProperty("user.dir");
String absolutePath = property + File.separator + theFileName;
File file = new File(absolutePath);
// File file = new File("D:\\logback.2019-04-29.log");
String fileName = file.getName();
if (file.exists()) {
//下载显示的文件名,解决中文名称乱码问题
String userAgent = request.getHeader("user-agent").toLowerCase();
String downloadFielName; if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
downloadFielName = URLEncoder.encode((fileName), "UTF-8");
} else {
downloadFielName = new String((fileName).getBytes("UTF-8"), "iso-8859-1");
}
headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + downloadFielName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); } else {
throw new FileNotFoundException("文件不存在");
}
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); }
}
JAVA在页面查看或下载服务器上的日志的更多相关文章
- Android开发之下载服务器上的一张图片到本地java代码实现HttpURLConnection
package com.david.HttpURLConnectionDemo; import java.io.FileOutputStream; import java.io.IOException ...
- 怎么把html页面部署到云服务器上
1,下载nginx 2,把页面放置到云服务器上 3,通过配置nginx conf下的nginx.conf文件,就可以通过ip:port访问到了 链接:https://www.cnblogs.com/f ...
- flask中下载服务器上特定路径的文件
使用flask下载服务器上某个路径下的文件 path:文件路径以及需要下载的文件,直接写入参数有安全隐患,实际应用中需要判断权限之类的 from flask import send_file, mak ...
- linux服务器上nginx日志访问量统计命令
linux服务器上nginx日志访问量统计命令 日志文件所在地方:/var/log/nginx/access_iqueendress.com.log/var/log/nginx/access_m.iq ...
- Java如何检查文件是否在服务器上被修改了?
在Java编程中,如何检查文件是否在服务器上被修改了? 以下示例显示如何检查文件是否在服务器上进行了修改. package com.yiibai; import java.net.URL; impor ...
- zoc 下载服务器上数据出现的问题
zoc上有一个download的按钮能够将服务器上的数据下载下来,但是在下载过程中出现了错误 但是点击会出现下面的问题: 这个配置默认是采用ZMODEM文件传输协议 但是可以看出来,这个传输协议有点问 ...
- linux下载服务器上的文件命令-sz
语法:sz 文件 比如要下载下面这个com.zip这个压缩包 输入sz com.zip 弹出下载页面,即可开始下载文件
- Linux服务器上创建日志服务器和FTP服务器
参考地址: http://www.111cn.net/sys/CentOS/81133.htm https://www.cnblogs.com/laoxiajiadeyun/p/9943742.htm ...
- Java使用Sftp实现对跨服务器上传、下载、打包、写入相关操作
1.Maven引入jar <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch< ...
随机推荐
- Hive内部表,外部表和分区表
外部表和内部表的区别 内部表也称之为managed_table: 默认存储在/user/hive/warehouse下,也可以通过location指定: 删除表事,会删除表数据以及元数据: 外部表称之 ...
- 封装class类--不分割类名
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- iOS下设备版本获取
执行环境 可以从 UIDevice 的属性 model 得到在现在执行的环境.例子如下: 1 2 3 4 5 6 7 8 9 10 NSString *modelname = [[UIDevice c ...
- django基础篇05-Form验证组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本简单的操作: from django im ...
- Ubuntu16.04 php7.1安装redis扩展
sudo apt install php7.1-redis //修改php配置 vi /etc/php.ini 添加extension=redis.so
- 算法学习之二分查找算法的python实现
——参考自<算法图解> 我们假设需要查找的数组是有序的(从大到小或者从小到大),如果无序,可以在第四行后插入一句 my_list.sort() 完整代码如下 def binary_sear ...
- 简单的python笔试题
1.输出九九乘法口诀 for i in range(1,10): for j in range(1,i+1): print('{}*{}={}'.format(j,i,i*j),end=' ') pr ...
- 375-基于TI DSP TMS320C6657、XC7K325T的高速数据处理核心板
基于TI DSP TMS320C6657.XC7K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6657和 ...
- STM32F407 正点原子按键输入实验
库函数版本: 库函数 源文件 头文件 GPIO_Init(GPIOE, &GPIOE_initstructure) stm32f4xx_gpio.c stm32f4xx_gpio.h RCC_ ...
- ubuntu不能登陆
开机按shift,找到之前的内核版本或者recovery 安装vmtools 报错Not enough free space to extract VMwareTools 解决办法:将此文件夹复制到另 ...