我们决定对应用程序日志使用(MySQL)数据库(它是一个使用logback库的Java应用程序)。我希望找到类似tail -f的东西,我可以在数据库中的特定表中使用它,在添加新行时向我显示它们(类似于tail -f如何处理日志文件)。
发布于 2010-09-22 22:08:25
打开MySQL二进制日志。然后可以使用mysqlbinlog命令查看所有数据修改语句。
发布于 2010-09-22 22:05:49
我认为有些人不理解这个问题(或者我不理解)。您不希望记录针对DB的查询;相反,来自应用程序的日志将进入DB。如果它是一个文件,您可以跟踪日志。如何跟踪表,以便在添加新行时将其输出?
假设您有一个随时间单调增加的唯一字段(例如,序列号),编写一个简单的循环来处理这个问题应该不难。
current_pos = select max(seq) from table
while true
new_pos = select max(seq) from table
if new_pos > current_pos
select * from table where seq > current_pos
current_pos = new_pos
endif
sleep 1
endwhile发布于 2010-09-22 20:34:57
看来我们很多人都不太明白你的问题。你所说的“日志数据库”是什么意思,它不是标准的MySQL术语。
使用MySQL 通用查询日志,它记录从客户端接收的每条语句。
然后,您可以在您的日志_输出=表中设置my.cnf。该文件将被写入$mysql_data_directory/general_log.CSV。您可以使用tail -f文件实时查看查询。
https://serverfault.com/questions/183736
复制相似问题