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

请问在写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日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?