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日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?