当前位置: 首页 > 知识库问答 >
问题:

如何将每个请求存储在同一文件中

湛安宁
2023-03-14

我正在创建一个不使用数据库的服务。

我将所有的请求数据存储在文件系统中。

我正在使用spring Boot开发服务。

共有1个答案

董喜
2023-03-14

你不需要Spring引导这一个人,所有你需要做的是写到一个缓冲的写入并添加一行在其中。

package com.pogs.utilities;

import org.joda.time.DateTime;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Class that implements request aggregation methods.
 *
 * @author Allan A. Chua
 * @version 1.0
 * @since August 31, 2018
 */
public class RequestAggregator {
    private final static String REQUEST_STORE_PATH = "D:\\logs.txt";

    //region Private Methods
    private void storeToTextFile(String input) {
        try {
            File file = new File(REQUEST_STORE_PATH);
            BufferedWriter fw = new BufferedWriter(new FileWriter(file.getAbsoluteFile(), true));

            fw.write(input);
            fw.newLine();

            fw.flush();
            fw.close();
        } catch (IOException ex) {
            System.out.println("[" + (new DateTime()).toString() + "][Logger is experiencing troubles]");
        }
    }
    //endregion

    //region Methods

    /**
     * Method used for appending request logs inside
     * the log aggregation method.
     *
     * @param input - Message to be logged.
     */
    public void appendInfo(String input) {
        String log = "[INFO][" + (new DateTime()).toString() + "]";
        log += input;

        storeToTextFile(log);
        System.out.println(log);
    }

    /**
     * Method used for appending error request logs inside
     * the log aggregation method.
     *
     * @param input Message to be logged.
     */
    public void appendError(String input) {
        String log = "[ERROR][" + (new DateTime()).toString() + "]";
        log += input;

        storeToTextFile(log);
        System.out.println(log);
    }
    //endregion
}
 类似资料:
  • 问题内容: 我们有一个weblogic批处理应用程序,它可以同时处理来自使用者的多个请求。我们使用log4j记录目的。现在,我们登录到单个日志文件以处理多个请求。调试给定请求的问题变得很麻烦,因为所有请求都将日志记录在一个文件中。 因此,计划是每个请求只有一个日志文件。使用者发送一个请求ID,必须对其进行处理。现在,实际上可能有多个使用者将请求ID发送到我们的应用程序。因此,问题是如何根据请求隔离

  • 问题内容: 很高兴知道,因为我的基本注册/身份验证系统正在进行中。 所以基本上我得到了这个: 然后,每当我在标头中发送带有jwt的get请求时,我就保护了/ admin路由和POSTMAN的安全,一切正常。 现在这是棘手的部分,基本上,当我要登录时是否成功,然后将我重定向到管理页面,并且每次尝试访问admin / *路由时,我都想将jwToken发送到服务器,但问题是,我该如何实现?我没有使用re

  • 问题内容: 是否有一种惯用的方式让Flask在每次请求时重新加载我的配置文件?这样做的目的是使我可以更改密码或其他与配置有关的项目,而不必在生产环境中关闭并重新启动服务器。 编辑:是不可接受的,因为它会重新启动服务器,并且不应在生产中使用。 也许是这样的装饰器: 如果相关,这是我现在如何加载配置的方法: 我的档案: 我的档案: 问题答案: 在应用程序开始处理请求之后,您将无法安全/正确地重新加载配

  • 问题内容: 我想创建一个像堆栈溢出这样的问答应用程序。 我不知道如何在MySQL表列中存储多个答案。 我想知道如何在sql表的同一行中存储问题和多个答案。 问题答案: 创建两个表并使用外键关系将它们连接是最好的解决方案之一。因为将问题和答案保存在同一表格中可能不会使您对同一问题有多个答案。如果您希望一个问题有多个答案,那么数据库的冗余肯定会增加。因此,请尝试正确使用DB- Relationship