Java 实现将日志输出到文件并下载日志文件

本文介绍了如何使用Java结合log4j.properties配置,在本地生成日志文件,并提供了一个简单的HTML页面链接,允许用户直接下载这些日志文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先,通过log4j.properties 的配置可以在本地产生一个log日志,所以我们要做的就是读取这个文件,并输出到下载文件中,

先看log4j.properties 文件的配置

# Output pattern : date [thread] priority category - message
log4j.rootLogger=INFO, console, logFile

#Console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - <%m>%n

#RollingFile
log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logFile.File=../logs/copyright.log
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=%d %p [%c] - <%m>%n

log4j.logger.com.bolo.examples=info
log4j.logger.java.sql=info
看到下面这句了吗?这个就是你自己配置的要在本地生成的(其实是在服务器端)log日志文件,名字你随便改啦。
log4j.appender.logFile.File=../logs/copyright.log



2、再看看通过servlet如何下载吧~~~

@RequestMapping(value="/log", method = { RequestMethod.GET, RequestMethod.POST })
	public void log(HttpServletRequest req,Model model,HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("this is log download html");
		
		String filename="../logs/copyright.log";
		String downFilename="copyright.log";//要下载的文件名称
        response.setContentType("text/plain");
        response.setHeader("Location",downFilename);
        response.setHeader("Content-Disposition", "attachment; filename=" + downFilename); 
        OutputStream outputStream = response.getOutputStream();
        InputStream inputStream = new FileInputStream( filename);
        byte[] buffer = new byte[1024];
        int i = -1;
        while ((i = inputStream.read(buffer)) != -1) {
        	outputStream.write(buffer, 0, i);
        }
        outputStream.flush();
        outputStream.close();
        inputStream.close();
		
	}


4、在HTML页面就一个<a href="log">下载日志</a>,点击下

3再看看效果呗~大笑




开森~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值