有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在stringBuilder中存储日志

我想向前端用户显示所有日志。如何将所有日志语句传输到前端?例如:

void process(){
..
// currently this is shown in a file and in a console
log.info("process called..");
}

如何以高效的方式将此日志消息传输到前端?我应该将日志附加到StringBuilder中吗?如何使用Log4j2实现这一点

目前,我没有jdbc商店。但我可以将所有日志存储到无sql数据库中。我不能使用JDBCAppender(或CassandraAppender)。我是否应该避免使用记录器并自己执行此操作:

而不是

log.info("process called..");

我可以用

user.addLog("process called..");

获取log.info()的字符串值是否更好。如果是,怎么做


共 (1) 个答案

  1. # 1 楼答案

    最好的办法是将日志存储在带有JDBCAppender的数据库中。当用户请求日志时,您可以决定在响应中加载和返回多少日志

    如果将所有日志保存在内存中(例如StringBuffer中),可能会耗尽内存并终止应用程序。此外,在服务器重启时,所有日志都将丢失。通过将日志存储到数据库中并按需访问,可以防止这两种情况的发生

    如果您真的需要一个StringAppender来进行定制集成,那么您必须自己编写它来扩展AbstractOutputStreamAppenderHere is a blog post带有相关代码