DNCS高级工程师 2021-09-09 20:36 采纳率: 94.1%
浏览 17
已结题

请问在写mvc项目的时候,使用ServletRequestListener进行日志的记录,可以记录到本地,但是我本地的txt文档打开后,里面没有数据

请看代码


    @WebListener
    //ServletRequestListener控制器请求监听
public class LoggingListneer implements ServletRequestListener {

        //只要访问浏览器。就会执行这个方法


    @Override
    public void requestInitialized(ServletRequestEvent sre) {



    //1、获取请求连接
        ServletRequest servletRequest = sre.getServletRequest();

        //2、根据请求的格式,设置响应的请求格式,因为现在获取的都是http的请求,所以设置成http请求格式
        HttpServletRequest request = (HttpServletRequest) servletRequest;

        //3\获取远程第地址
        String remoteHost = request.getRemoteHost();

        //4、获取远程访问的端口号
        int remotePort = request.getRemotePort();

        //5\客户访问的资源
        String requestURI = request.getRequestURI();


        //获取访问的时间
        Date date = new Date();
        //自动将时间转换成字符串
        String string = date.toLocaleString();

        String log = "时间:"+string+"  地址:"+remoteHost+"  端口号:"+remotePort +"  资源:"+requestURI;

        System.out.println(log);

        FileOutputStream fileOutputStream=null;
        PrintWriter printWriter=null;
        //持久化到本地
        try {
            //创建文件输出流
             fileOutputStream = new FileOutputStream("F:\\login\\login.txt",true);
            //往哪里写,往文件输出流里面写
            printWriter= new PrintWriter(fileOutputStream);
            //写什么?
            printWriter.println(log);

            //都需要释放

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            //无论执行成功没有,都要关闭流,否则会造成磁盘的阻塞
            try {
                fileOutputStream.close();
                printWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}

当访问项目的时候,控制台会打印

img

但是txt文档中就是没有,对比了其他人的代码。却发现没有问题,但就是无法将日志传入到本地,显示空白。
但如果我把login.txt文档删了,程序就会报错,也就是说程序它本身回去找我这个路径,但是就是不往文档里面写东西,请问这是怎么回事?

  • 写回答

1条回答 默认 最新

  • 三千烦恼丝xzh 2021-09-09 21:17
    关注

    flush一下,先close printWriter. 在close fileOutputStream.试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 9月9日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效